Hola, en este artículo vamos a ejemplificar y aplicar la recursividad de la conjetura de Collatz, si necesitas información matemática puedes recurrir a la wikipedia, quien redacta este artículo es estudiante de Ingeniería de Sistemas (futuro programador).
El problema Syracuse o Conjetura de Collatz es una función recursiva y las condiciones son las siguientes:
Si N es par, lo dividimos [N/2];
Si N es impar, lo multiplicamos por 3 y sumamos +1 [3N+1];
Siendo N un numero entero positivo; es necesario que N sea un numero entero positivo ya que si fuese real (con coma decimal) nuestro ordenador no podría saber si es “par o impar” debido a que una de las formas de saber si un número es par o impar es mediante el “módulo” el cual halla el residuo de una división, si el residuo de N y 2 es 0, entonces N es par!.
Comencemos:
Necesitamos crear una funcion recursiva, nuestra función se llamará syr(), el parámetro de entrada es una variable de tipo entero (por que si fuera double o float simplemente no existiría el módulo (residuo)), obviamente nuestra función syr() devuelve un valor entero!
Si N es 1, retornamos 1;
Sino, Si el módulo (residuo) de N y 2 es 0, retornamos N/2;
Sino, retornamos 3*N+1;
Veamos lo que pasa si N valiese 5:
5 % 2 == 0 ?? NO!
entonces >> n = 3*5 + 1, [n = 16];
16% 2 == 0 ?? SI!
entonces >> n = 16/2, [n = 8];
8% 2 == 0?? SI!
entonces >> n = 8/2, [n = 4];
4 % 2 == 0?? SI!
entonces >> n = 4/2, [n = 2];
2%2 == 0?? SI!
entonces >> n = 2/2. [n= 1]
1 == 1?? SI!
Fin de la secuencia, llegamos a 1!
EN PHP sería de la siguiente manera:
syr($n)
{
echo $n; //mostramos $n
if ($n == 1) //si $n es 1, devolvemos 1
return 1;
else //sino ...
{
if ($n%2 == 0) // si es par
return syr($n/2); // lo dividimos
else //sino
return syr(3*n+1); // multiplicamos por 3 y sumamos 1;
}
}
El código ignoranto tiene el algoritmo escrito en C# y PHP; también podemos probar la Serie de Syracuse solo con números enteros menores de 1e5 (sino se sobre carga el server)!

interesante eso de la recursividad.
como calculamos el tiempo de vuelo en altitud
Hola Pedro, no tengo ni idea, pero quizá si me orientas podamos hacer algo; te cuento, soy (futuro) Programador y de matemática se poco!