Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Factorial hasta 1000 (https://www.clubdelphi.com/foros/showthread.php?t=48264)

ArdiIIa 20-09-2007 16:37:34

Se emplearon 106 milisegundos....

seoane 20-09-2007 16:40:53

Cita:

Empezado por ArdiIIa (Mensaje 232523)
Se emplearon 106 milisegundos....

Vaya, casi 5 veces mas rápido tu equipo que el mio :( ¿sera hora de renovarme?

ArdiIIa 20-09-2007 16:42:42

Cita:

Empezado por seoane (Mensaje 232525)
Vaya, casi 5 veces mas rápido tu equipo que el mio :( ¿sera hora de renovarme?

Es que soy seguidor de Alonso....:D

seoane 20-09-2007 16:54:38

Cita:

Empezado por ArdiIIa (Mensaje 232528)
Es que soy seguidor de Alonso....:D

Tu lo que eres es un presumido :p ... (como Alonso :D)

Robert01 20-09-2007 19:07:28

Estas son mis marcas:

fact 1000 = 285 miliseg

fact 10000 = 2334 miliseg

fact 100000 = 27239 miliseg

En windows, no he probado usarlo con wine en ubuntu al programa Fast.

Yo quise probar en freepascal pero hay algo que no anda bien, un error que dice que Result[i] es desconocida, tal vez alguna librería que no agregué.

Saludos

Delphius 20-09-2007 19:20:59

Cita:

Empezado por ArdiIIa (Mensaje 232528)
Es que soy seguidor de Alonso....:D

Y yo del tortugo Ignacio:D (Bueno... creo que se llamaba asi)

Menos mal que no probé la versión en mi anterior "fitito": un Pentium con 333 Mhz, 128 Mb RAM y Windows 2000:eek::p

Tendría que ver, por cuiosidad, lo que hay en el archivo adjunto y probarlo. Después si me da la cabeza le hago un analisis de complejidad... ¡Lo que uno hace para salir y evitar las obligaciones!;):D

EDITO:
Lei mal... pensaba que en el archivo adjunto estaba el código para probar :p ... Un pequeño error de lectura. Pues que es un número grande...

Saludos,

Delphius 20-09-2007 19:41:56

Bueno, y volviendo al tema original del hilo.
Creo que el amigo Cheswar ya eliminó su duda.

Aunque me llama la atención la necesidad de generar el factorial de números tan grandes. Un tema que ya fue ampliamente estudiado hace años...

No se cual será su objetivo, por lo general se deja estos tipos de ejercicios: factoriales, recursividad, numeros primos, capicuas... como inicio en la programación. Me cuesta capturar el sentido práctico, como programación, el hallar un número tan grande. Si tiene sentido en cambio si se quiere hacer un estudio de algoritmos... aunque como dije ya fue discutido hace tiempo.

De cualquier manera, Cheswar se ha llevado ya las respuestas.

Este post ha sido escrito no con la finalidad de tirar malas impresiones, sino como un intento de volver a canalizar los objetivos iniciales del hilo.
En un rato podría volver con el estudio de los algoritmos. Haciendo una comparación entre la versión lenta y rápida. Si es que le sirve de sustento a Cheswar (y claro... si el está de acuerdo e interesado).

Saludos,

Robert01 20-09-2007 20:22:12

Pido disculpas por los resultados para factorial de 10000 y de 100000. ¡Son valores erróneos! no se en que estaba pensando cuando puse eso.

Saludos

seoane 20-09-2007 20:53:30

Cita:

Empezado por Robert01 (Mensaje 232575)
Yo quise probar en freepascal pero hay algo que no anda bien, un error que dice que Result[i] es desconocida, tal vez alguna librería que no agregué.

En freepascal para devolver el valor en las funciones se utiliza el estilo clásico de pascal, es decir el propio nombre de la función. Así que prueba a utilizar MulSuper[i] en vez de Result[i], no lo he probado pero creo que debería de funcionar.

Cita:

Empezado por Robert01 (Mensaje 232606)
Pido disculpas por los resultados para factorial de 10000 y de 100000. ¡Son valores erróneos! no se en que estaba pensando cuando puse eso.

Si no me equivoco el de 100,000 correspondería a 10,000, y el de 10,000 a 1,000, serian ya unos tiempos razonables. El factorial de 100,000 no se puede calcular con este método porque se provoca un desbordamiento de la pila.

xander 21-09-2007 20:43:27

En mi equipo el código expuesto por Seoane tal cual está se tarda 450 milisegundos en ejecutarse compilado en Delphi 2007, pero si le agrego a los procedimientos la sentencia inline se tarda solo 196 milisegundos!!!

En uno de esos equipos de doble nucleo que traen hasta aeromozas incluidas debe ser un tiro usando inline


La franja horaria es GMT +2. Ahora son las 05:10:58.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi