La Conjetura de Collatz también conocida como conjetura del 3n + 1, es un problema matemático donde se utiliza un número entero positivo:
Si el número es Par, se divide entre 2.
Si el numero es Impar, se multiplica por 3 y se le suma 1.
Y asi sucesivamente hasta llegar a 1.
Conociendo esto tenemos que:
Si n es igual a 1:
Detener.
Mientras n no sea igual a 1:
Checar si es par.
Si es par:
Dividir entre 2.
Si no es par:
Multiplicar por 3 y sumar 1.
Con lo cual podemos crear nuestra Clase en Actionscript 3:
Código :
package Classes { public class CC { private var output:Array;
public function solve(n:int):Array { output = new Array();
if(n == 1) { n = 1; }
while(n != 1) { if(n % 2 == 0) { n = n / 2; } else { n = 3 * n + 1; }
output.push(n); }
return output; } } }
Donde output, es el Array o Matriz donde se van guardando los números.
Nota: El Input admite cuantos números desees, es a tu conciencia el colocar cantidades muy elevadas, ya que Flash Player puede llegar a trabarse o generar un error donde se indica que el Script no puede ejecutarse por el tiempo necesario para resolver ese número. Se recomiendan cantidades menores a 8 digitos.