domingo, 27 de octubre de 2013
viernes, 25 de octubre de 2013
Factorización de Fermat en R y Maple
Los números primos son aquellos que no tienen divisores, son los “primeros” de su género. En contraste los números que no son primos son compuestos (los componen números primos).
El problema de saber si un numero en concreto es primo o no, no es fácil de solventar. El mismo Fermat ideó un algoritmo para determinar si un número es primo o no.
Me ha hecho gracia escribir un programa en lenguaje R que aplique este algoritmo. Para los interesados aquí este el código en basto.
El problema de saber si un numero en concreto es primo o no, no es fácil de solventar. El mismo Fermat ideó un algoritmo para determinar si un número es primo o no.
Me ha hecho gracia escribir un programa en lenguaje R que aplique este algoritmo. Para los interesados aquí este el código en basto.
Código sin pulir del algoritmo de factorizaron de Fermat para R.
Raw code of Fermat’s factoritation method for R.
#============#x^2-y^2=n
#x^2-n=y^2
#============
#INTRODUCIR EL NÚMERO A FACTORIZAR
n<-23711
fras<-c("Los factores de ")
fras1<-c(" son ")
fras2<-c(" y ")
p<-sqrt(n)
p3<-trunc(p)
s<-(p3)
fin<-(n+1)/2
for (i in p3:fin){
s=s+1
r<-((s^2)-n)
a<-trunc(sqrt(r))
b<-sqrt(r)
if (a==b){
break
}
}
#==============================
#y= raíz cuadrada de r. x es s.
#tenemos que X=(a+b)/2. y=(a-b)/2
#ya que ab=n. Y a=x+y, b=x-y
#==============================
af<-s+a
bf<-s-a
paste (fras,n,fras1,af,fras2,bf)
El código funciona bien, pero resulta que R es un software pensado para la estadística y según el número que queramos comprobar nos dice que el cálculo es demasiado grande. Pasa si utilizamos el número: 502.560.280.658.509.
Así pues escribí otro código para Maple (es mi primer código en Maple), que es un software especial para matemáticas. También lo adjunto por si alguien llega aquí por alguna consulta googlena.
Así pues escribí otro código para Maple (es mi primer código en Maple), que es un software especial para matemáticas. También lo adjunto por si alguien llega aquí por alguna consulta googlena.
Código del algoritmo de factorizaron de Fermat para Maple.
Code of Fermat’s factoritation method for Maple.
fermatfactor:= proc()
local a, s, fin, n, p, p3, b, r, x, i, af, bf; #variables
printf(`Programa que usa el Algoritmo de Fermat para factorizar`);
printf(` Introduzca el número a factorizar:`);
n := scanf(%f)[1];
p:=sqrt(n);
p3:=trunc(p);
s:=p3;
fin:=(n+1)/2;
a:=1;
b:=2;
#Bucle
for i from p3 to fin
while not (a=b) do
r:=i^2-n;
a:=trunc(sqrt(r));
b:=sqrt(r);od;
x:=i-1;
af:=x+a;
bf:=x-a;
print(`los factores de`,n,`son`,af,bf);
end:
# NOTA: Hay que llamar a la función con fermatfactor()
Este programa factorizó el anterior número que esta por los 500 billones (con b y europeo –en estados unidos un billón solo son mil millones-) en tres cuartos de hora. Por un teorema (que no expongo), solo nos hace falta buscar números desde el primer número entero cuyo cuadrado sea mayor que el número que queremos factorizar (en este caso 22.417.857) hasta el número a factorizar más uno y entre dos, es decir 251.280.140.329.255.
En resumen, el programa lo que hace es probar una ecuación, número a numero desde 22.417.857 a 251.280.140.329.255 en el peor de los casos. Para este número se evaluaron los números hasta el 23.969.353, es decir, tan solo un poco más de millón y medio de comprobaciones.
domingo, 20 de octubre de 2013
Curiosidad tolquiana béricomusical
Hace mucho tiempo, antes de la espectacular adaptación de Peter Jackson, los únicos ecos folclóricos de la obra tolquiana eran una peli de dibujos del 78 y el Señor de los Chupetes de Superlopez.
Desde esa época en las ruinas de mi memoria vivía el recuerdo de una canción ochetera que versaba sobre el Señor de los Anillos. Largos han sido los años que han transcurrido para que, mi memoria, mi recuerdo, se reencuentre con su causa, con su creador y de alguna forma se extinga y renazca (paradógicamente).
Se trata del grupo de pop “La dama se esconde” con el tema “Magia”.
jueves, 17 de octubre de 2013
Tutor o mentor
En algunas disciplinas prácticas es indispensable que los
alumnos tomen contacto con el mundo profesional para que su formación se
complete. Mientras más técnica y abstracta menos aplicación se espera de ella,
tanto es así que existen ramas de las ciencias físicas o de las matemáticas que
se las considera puras y en las que nadie espera que se obtenga algo
directamente práctico.
En contraste, como ejemplo de disciplina práctica, me
resulta impensable que una enfermera termine su formación si tener un contacto
directo con los pacientes. La enfermería tiene un gran componente “humano”,
incluso teatral cuando ha de actuar dentro de un sistema de salud. En definitiva y en general la enfermera
cuida al que no puede hacerlo y aunque no es una disciplina sesuda que intente
desenmarañar la realidad su aprendizaje y práctica son una tareas complejas que
no es posible asimilar de forma puramente intelectiva.
Eso no quiere decir que la enfermería deba sentirse
acomplejada, de hecho si la enfermería redescubriera algunas impresionantes
joyas intelectuales de su pasado y tuviera el valor de aplicar rigor a las
preguntas que se hace y no esconderse tras un patético misticismo no tendría
parangón.
Aceptando lo dicho, el profesional que guía al alumno en su
contacto con el mundo profesional esta pobremente definido con el termino
“tutor”, que viene a ser la “Persona encargada de
orientar a los alumnos de un curso o asignatura.” [1], la Universidad Nacional
Autónoma de México indica a sus tutores que este tiene que favorecer el
desarrollo de habilidades y actitudes para el estudio y no solamente la
adquisición de conocimientos [2]. El
termino tutor tiene un enfoque eminentemente académico.
En contraste, el término “mentor” que
viene a ser, “consejero o guía” [3], refleja un aprendizaje más práctico dentro
de una relación formal. Un caso clásico de mentoría es la relación maestro
aprendiz en los gremios medievales por la que el neófito aprendía los
entresijos del oficio.
Se puede objetar que esta idea diera a
entender que la enfermería es más un oficio que una profesión. Y esa réplica
miope tendría su parte de razón puesto que parte de oficio tiene la disciplina.
Pero, tal como un matemático no se avergonzará de reconocer que ha tenido que
aprender la parte de oficio que tiene su profesión, la enfermera no ha de
despreciar la parte de saber hacer por el mismo hacer de su profesión. Más
mecánica e irreflexiva, sí, pero también más pulida por la propia ecología de
las conductas (las conductas también están sujetas, por así decirlo a una
especie de “selección natural”).
Así, la persona que recibe la mentoría [3],
entendida como una relación de desarrollo personal en que una persona más
experimentada o con mayor conocimiento ayuda a otra menos experimentada o con
menor conocimiento a través de consejos prácticos o por modelado, viene a ser
el aprendiz o discípulo.
Para concluir, se puede decir que el
tutor, instruye al alumno en su estudio de las bases de la disciplina mientras que
el mentor guía al aprendiz para que sus primeros trabajos lleguen a buen puerto. Visto lo visto, entonces, ¿no sería más apropiado mentor de prácticas que tutor de practicas?
[1] Diccionario de la RAE
[3] http://es.wikipedia.org/wiki/Mentor%C3%ADa
jueves, 10 de octubre de 2013
Ejercicios fermatianos
Un ejercicio de teoría de números (matemáticas discretas) de la UNED.
Demuestre que el cuadrado de cualquier entero es representable como \(3k\) ó \(3k+1\).
Por el teorema o algoritmo de la división, sabemos que todo número puede representarse como \(3k, 3k+1\) ó \(3k+2\). Ahora
vamos a mostrar los cuadrados de esos números.
Recordemos que \((a+b)^2=a^2+2ab+b^2\).
$$(3k)^2=9k^2=3(3k^2)=3k´$$
$$(3k+1)^2=9k^2+6k+1=3(3k^2+2k)+1=3k´+1$$
$$(3k+2)^2=9k^2+12k+4=9k^2+12k+3+1=3(3k^2+4k+1)+1=3k´+1$$
Veamos la otra parte del ejercicio.
Demuestre que el cubo de cualquier entero es de la forma \(9k,9k+1\) ó \(9k+8\).
Vamos ha hacer algo parecido al caso anterior, en primer lugar pienso en alguna serie de números como los anteriores que
elevados al cubo den la solución pedida. Supongo que en teoría se podrían utilizar diferentes series de números de partida (si
la cosa cuadra, cuadrará para todos los números, ahí está la gracia de las demostraciones). Empezaré por lo primero que se me
ha ocurrido y que resulta que ha funcionado, después lo probaremos de otra forma a ver si también chuta.
Cualquier número entero puede presentarse como \(6k, 6k+1,6k+2,6k+3, 6k+4\) ó \(6k+5\). Nos ha de resultar que podamos poner
los cubos de esos números en las formas que nos piden en el enunciado. Vamos pues a la faena. Recordemos también que \((a+b)
^3=(a+b)^2•(a+b)=(a^2+2ab+b^2)(a+b)=a^3+3a^2b+3ab^2+b^3\).
Desarrollando.$$(6k)^3= 36k^3=9(4k^3)=9k´$$ $$(6k+1)^3=(6k)^3+3(6k)^2•1+3(6k)•1^2+1^3=36k^3+108k^2+18k+1=9(4k^3+12k^2+2k)+1=9k´+1$$ $$(6k+2)^3=(6k)^3+3(6k)^2•2+3(6k)•2^2+2^3=36k^3+216k^2+72k+8=9(4k^3+24k^2+8k)+8=9k´+8$$ $$(6k+3)^3=(6k)^3+3(6k)^3•3+3(6k)•3^2+3^3=36k^3+324k^2+162k+27=9(4k^3+36k^2+18k+3)=9k´$$ $$(6k+4)^3=(6k)^3+3(6k)^3•4+3(6k)•4^2+4^3=36k^3+432k^2+288k+64=9(4k^3+48k^2+32k+7)+1=9k´+1$$ $$(6k+5)^3=(6k)^3+3(6k)^3•5+3(6k)•5^2+4^3=36k^3+540k^2+450k+125=9(4k^3+60k^2+50k+13)+8=9k´+8$$
De este modo vemos que es cierto lo que postula el enunciado.
Como decía antes, voy a probar si es posible hacerlo más simple corto, después de todo ha de funcionar con todo número ¿no?
Ya es sabido que con \(3k, 3k+1\) ó \(3k+2\) podemos representar cualquier número. Hacemos lo mismo que antes:
$$(3k)^3=9k^3=9k´$$ $$(3k+1)^3=(3k)^3+3(3k)^2•1+3(3k)•1^2+1^3=9k^3+27k^2+9k+1=9(k^3+3k^2+k)+1=9k´+1$$
$$(3k+2)^3=(3k)^3+3(3k)^2•2+3(3k)2^2+2^3=9k^3+54k^2+36k+8=9(k^3+6k^2+4k)+8=9k´+8$$
E igualmente hemos demostrado lo que se pedía (con bastante menos curro).
martes, 8 de octubre de 2013
Cura y tratamiento
Entonces, extendiendo él la mano, le tocó, diciendo:
Quiero; sé limpio. Y al instante la lepra se fue de él.
Lucas 5:13
Buscando un milagroso remedio para mi, ya extinguido, resfriado encontré que la Wikipedia afirma que éste no tiene cura.
Y puesto que en principio y públicamente no creo en milagros, creo que importante señalar la diferencia entre no tener cura y no tener tratamiento. Veamos un ejemplo.
El resfriado tiene cura, pero no tiene tratamiento. Es decir, nos curamos de él pese a que no exista un tratamiento medico que lo combata realmente.
En contraste, el SIDA sí tiene un tratamiento médico eficaz y sin embargo, al menos hasta la fecha, no tiene cura.
domingo, 6 de octubre de 2013
Suscribirse a:
Entradas (Atom)