Cristalab

Cómo resolver la Conjetura de Collatz en Actionscript 3

Por: Carloz.Yanez + 11.10.2007

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:

Y asi sucesivamente hasta llegar a 1.

Conociendo esto tenemos que:


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:

Etiquetas actionscript_3

Comentarios | Enviar un comentario
Que es eso? Y para que sirve?
Por: JaLeRu

JaLeRu :

Que es eso? Y para que sirve?
Leer el primer párrafo es considerado cortesía normalmente. Intentalo.
Por: Freddie

Freddie :

JaLeRu :

Que es eso? Y para que sirve?
Leer el primer párrafo es considerado cortesía normalmente. Intentalo.

Si lo leí. Pero de que sirve?
Por: JaLeRu

Carloz.Yanez :


Código :


         while(n != 1)
         {
            if(n % 2 == 0)
            {
               n = n / 2;
            }
            else
            {
               n = 3 * n + 1;
            }
            output.push(n);
         }

Oye, ese código no tiene en cuenta le 0.
Te mete en un bucle infinito, deberías corregirlo.
Por: Bleend

Bleend :

le 0.
*el
Por: Bleend
si pones un 1 no sale nada tampoco
Por: Raul_blog

Raul_blog :

si pones un 1 no sale nada tampoco
Es el valor que devuelve siempre al final. Es como si empezases la carrera desde la linea de llegada.
Por: Bleend
Uiiii puse cero y me finalizo tarea el Firefox. Riendo
Por: JaLeRu
que raro estoy registrado y aparezco como invitado?

bueno a me no me funciona, me aparece un borde parpadeante al final (como que abre un frame y lo cierra)

no se por que es?

tengo el flash 8 instalado en el pc y el plugin para ver flash, la version 9
Por: Lord Zorel_blog
Podría haber dicho una ejemplo de alguna aplicación en el Flash de esta Conjetura...
Por: Ricardo_blog
tiene razon el man que le puso cero ala cifra de que se le haya cerrado firefox
yo uso safari y me paso lo mismo
Por: gustavz_blog
Deja un comentario
IMPORTANTE

Recuerda ser respetuoso, no insultes a otras personas, ni uses palabrotas, hay una persona al otro lado de la pantalla.

Habla bien, NO ESCRIBAS EN MAYUSCULA TODO, no escribas como en un SMS, evita cosas como "ke", "x q" y demás abreviaciones.

Aquí funcionan las etiquetas de los foros, puedes usar [b] para negrita, [img] para las imágenes, [url] para los enlaces, etc.

Si tienes preguntas técnicas, envíalas mejor al foro.