Comunidad de diseño web y desarrollo en internet online

Cómo resolver la Conjetura de Collatz en Actionscript 3

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.

Este es el ejemplo:

¿Sabes SQL? ¿No-SQL? Aprende MySQL, PostgreSQL, MongoDB, Redis y más con el Curso Profesional de Bases de Datos que empieza el martes, en vivo.

Publica tu comentario

El autor de este artículo ha cerrado los comentarios. Si tienes preguntas o comentarios, puedes hacerlos en el foro

Entra al foro y participa en la discusión

o puedes...

¿Estás registrado en Cristalab y quieres
publicar tu URL y avatar?

¿No estás registrado aún pero quieres hacerlo antes de publicar tu comentario?

Registrate