La conjetura de Collatz y la conjetura de Goldbach Taller de Informática 1 2017 La conjetura de Collatz Definición Lothar Collatz (1910-1990). En 1937 propuso la conjetura de Collatz, la cual permanece sin ser resuelta. Se la conoce también como conjetura de Siracusa o conjetura de Ulam. Collatz estudió en diferentes universidades alemanas incluyendo la Universidad de Berlín bajo la tutela de Alfred Klose, recibiendo el doctorado en 1935 Realizó contribuciones a las matemáticas aplicadas para el cálculo numérico, en el análisis funcional, en la teoría de ecuaciones diferenciales e integrales Escribió varios libros de matemáticas aplicadas que fueron traducidos al inglés Definición Definición Elijamos un número natural, digamos n, y realicemos los siguientes cálculos: Si n es par dividámoslo por 2 Si n es impar multipliquémoslo por 3 y sumémosle 1 al resultado Con el número obtenido repitamos el proceso, y así sucesivamente. Por ejemplo, si n=6 la secuencia obtenida es: Cuando se llega a 1, se 6, 3, 10, 5, 16, 8, 4, 2, 1 termina, dado que a partir de aquí, se repite Pero si n=11, la secuencia es: la secuencia 4, 2, 1 11, 34, 17, 52, 26, 13, 40, 20, 10, 5, 16, 8, 4, 2, 1 Definición Hay alguna manera de saber la cantidad de elementos de la serie? n=27: 27, 82, 41, 124, 62, 31, 94, 47, 142, 71, 214, 107, 322, 161, 484, 242, 121, 364, 182, 91, 274, 137, 412, 206, 103, 310, 155, 466, 233, 700, 350, 175, 526, 263, 790, 395, 1186, 593, 1780, 890, 445, 1336, 668, 334, 167, 502, 251, 754, 377, 1132, 566, 283, 850, 425, 1276, 638, 319, 958, 479, 1438, 719, 2158, 1079, 3238, 1619, 4858, 2429, 7288, 3644, 1822, 911, 2734, 1367, 4102, 2051, 6154, 3077, 9232, 4616, 2308, 1154, 577, 1732, 866, 433, 1300, 650, 325, 976, 488, 244, 122, 61, 184, 92, 46, 23, 70, 35, 106, 53, 160, 80, 40, 20, 10, 5, 16, 8, 4, 2, 1 Grafico: Para n=6 16 14 12 10 8 6 4 2 0 1 2 3 4 5 6 7 8 9 Grafico: Para n=11 60 50 40 30 20 10 0 0 5 10 15 Grafico: Para n=27 10000 9000 8000 7000 6000 5000 4000 3000 2000 1000 0 0 20 40 60 80 100 120 Que sea simple no significa que sea fácil… Curiosidad: Casi 80 años después nadie ha demostrado su veracidad, aunque gracias a las computadoras se ha podido comprobar que para números hasta 2 elevado a 58, la secuencia acaba siempre en 1. Esto significa que esta conjetura es cierta para una gran cantidad de números, pero esto no nos sirve como demostración. Evidentemente, la intuición nos lleva a pensar que debería ser cierto, pero es necesaria la demostración para hacerlo universal Para jugar un rato: http://matheroboter.de/collatz.php?berechnen=1&cat=6&zahl=27 Como lo programamos? function s= collatz(n) s=[n]; while n>1 if rem(n,2)==0 n = n / 2; else n = 3*n + 1; end s=[s n]; end vector=s; end Prueba Por línea de comandos: >> s= collatz(6); >> plot(s) >> s= collatz(11); >> plot(s) >> s= collatz(27); >> plot(s) plot: Comando Matlab para realizar un gráfico!! Un ejemplo interesante Es interesante calcular y graficar la cantidad de valores de la serie para los primeros n números naturales. Para eso usamos la función gcollatz(n) que lo que hace es calcular la conjetura para n, n-1, n-2,…..,1 y guarda en un vector la cantidad de elementos que tiene la conjetura para cada ni. Es decir, no me interesan en este caso cada uno de los valores de la conjetura sino la cantidad. Ejemplo: gcollatz(8) 4 17 9 6 3 8 2 1 Un ejemplo interesante Vector= gcollatz(20000) 300 250 200 150 100 50 0 0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2 4 x 10 Como lo programamos? function v= gcollatz(n) for i=1:n s= collatz(i); v(i)=length(s); end end Prueba Por línea de comandos: >> s= gcollatz(6); >> plot(s, ‘.’) >> s= gcollatz(11); >> plot(s, ‘.’) >> s= gcollatz(27); >> plot(s, ‘.’) plot: El segundo parámetro , o sea, ‘.’ indica el tipo de línea que quiero dibujar. Opciones: ‘.’ , ‘*’, ‘o’, ’-’, ‘d’, etc La conjetura de Goldbach Definición Christian Goldbach (1690-1764). En 1742, en una carta que envió a Euler, se encontró el enunciado de la conjetura que lleva su nombre. Euler intentó demostrarla sin éxito. Goldbach estudió leyes, idiomas y matemáticas. Realizó viajes a través de Europa y conoció a varios matemáticos famosos como Leibniz, Euler y Bernoulli. Estudió y demostró varios teoremas sobre potencias perfectas. Definición Definición Elijamos un número natural par, digamos n, mayor que 2, podemos decir que puede escribirse como la suma de dos números primos: Por ejemplo, si n=6 se puede escribir como: 3 +3 Pero si n=16, se puede escribir como : 11 + 5 Curiosidad: En 2013, el matemático peruano Harald Andrés Helfgott dio una demostración de la conjetura débil de Goldbach: “Todo número impar mayor que 5 es la suma de tres números primos” Sin embargo, esta demostración no representa un avance en la demostración de la conjetura original, ya que los métodos usados no funcionan de la misma manera Gráfico El número de las diferentes maneras en las que se puede expresar un número par n como la suma de dos números primos (4 <= n <= 1,000,000). Como lo programamos? function es = EsPrimo(n) % EsPrimo(n). Funcion logica que indica si n es primo o no. % Si nada indica lo contrario, el numero sera primo es = 1; % Recorremos todos los numeros desde el 2 hasta raiz de n % comprobando si dividen exactamente a n for i=2:sqrt(n) if rem(n,i)==0 % Resto de dividir n entre i es=0; Esta función no es muy eficiente! Realiza todo el end ciclo for, incluso luego de end averiguar que el numero en cuestión no es primo!! Como lo programamos? function es = EsPrimo(n) % EsPrimo(n). Funcion logica que indica si n es primo o no. % Si nada indica lo contrario, el numero sera primo es = 1; % El while termina o bien cuando no es primo, o cuando llegamos a la raiz cuadrada de n i=2; while i<=sqrt(n) && es==1 if rem(n,i)==0 % Resto de dividir n entre i Mucho más eficiente! Si no es=0; es primo, termina el ciclo! end i=i+1; end Como lo programamos? function [a,b]= goldbach(n) encontre=0; a=2; while ~encontre && a<=n/2 b=n-a; if EsPrimo(a) && EsPrimo(b) encontre=1; else a=a+1; end end %Si encontré, retorno el resultado, de otro modo, cero if (~encontre) a=0; b=0; end end Tarea: Chequear que n es mayor que 2 y además es par (para que cumpla por completo la conjetura)