PI   laBitácora.net                   Mirror Cd por nevrlndtink1

« PreviousNext »

Numerazos, Java y Windows

8 Febrero 2006

Hace un tiempo probé calculadoras para mi teléfono móvil (Nokia 6600) y una de las pruebas más significativas es el cálculo del factorial. Es una prueba que puede dar indicio de la precisión soportada, la rapidez de los cáculos, etc. Bien, pues una calculadora en Java resultó poder calcular el factorial de 10000! (la admiración es de sorpresa, aparte de ser el símbolo de factorial). El resultado es un numerazo.
El caso es que pruebo a calcularlo con la calculadora de Windows y primero dice que el número es muy grande y aunque al final sacó el resultado lo cierto es que tardó bastante más.
El móvil, que es un aparato minúsculo y con un procesador no muy potente y con un programa Java (que tiene fama de ser lento), ganó claramente a un PC… Bueno, supongo que lo que realmente probé es lo pobre que es la calculadora de Windows y lo mantas que son los de Microsoft. (Aunque también es cierto que cada vez tenemos más potencia en aparatos como los móviles que son pequeños, de uso común en un montón de gente y relativamente baratos… PDA, cámara de fotos y video, MP3, radio, juegos y GPS son cosas que cada vez es más normal tener en el móvil. )

Posted in General, Reflexiones, Tecnología, Curiosidades, Ciencia, Programas | Trackback | del.icio.us | Top Of Page

    5 Responses to “Numerazos, Java y Windows”

  1. Sim0n Says:
  2. Juan Says:

    Pues yo he usado la calculadora de Windows XP en un Pentium III a 750MHz, con 256Mb RAM, y me ha sacado el resultado en muy poquito tiempo; efectivamente, unos 4s. Esto es lo que ofrece: 2,8462596809170545189064132121198e+35659

  3. Acid Says:

    Como te pasas, Simon, mira que poner el resultado exacto con todos los dígitos jajajaja

    En cuanto al algoritmo recursivo, no es el más eficiente. Ten en cuenta que una llamada recursiva implica hacer uso de la pila y eso supone un montón de escrituras y lecturas en memoria… El mejor algoritmo imagino que es un simple bucle (un for, por ejemplo). Algo así: facn=1; for(i=n;n>=1;i–){facn=facn*i;}
    Si esto se compila bien podrán usarse sólo dos registros del procesador y sólo hay que decrementar uno e ir multiplicando por el otro… sin lecturas y escrituras en memoria.

    No recuerdo bien el programa que usé en el móvil pero he encontrado uno llamado JvoCalc y me ha tardado 3 segundos. Con windows creo recordar que me tardaba bastante más.

  4. slot machines Says:

    [Este comentario era SPAM]

  5. Roster Says:

    Prueba un dia a tartar de sacar el factorial utlzando el lenguaje de programaion Pyton, ese 10000 lo saca en segundo!!!

Leave a Reply




Estadísticas
Licencia Creative Commons