FTP | CCD | Buscar | Trucos | Trabajo | Foros |
#1
|
||||
|
||||
Sobre Int64
Buenas foristas,
Pues, tengo un pequeño problema. Debo realizar un generador de números aletorios para poder realizar los prácticos de la cátedra de Modelos y Simulación, en uno de los puntos se me pide que encuentre el período para un generador multiplicativo donde: módulo = 10^8 semilla = 19 a = 211 Inicialmente tenía pensado que con el tipo integer iba de pelos, pero al probarlo con dicho valor, mi máquina se clavaba (como si entrara en blucles infinitos) y la ventana se ponían blanca. El algoritmo anda bien siempre que no sobrepasara los 10^6. Para poder permitir incluso números mayores, cambié por Int64, el cual segun la ayuda, permite hasta 2^63-1. Sigue funcionando bien.... pero he aquí, que inclusive así... sucede el mismo fenómeno. ¿Cómo es posible esto?... Lo raro es que probé con generar números (con el mismo generador) de: a = 7^5 m = 2^31-1 Como se me pide en otro de los puntos de dicho práctico y esto anda!.... bueno... al menos con la semilla que le pasé: 15 (no se especifica la semilla, es a elección) Adjunto el código (.dpr, .dfm y .pas) por si alguien vee algo raro. La verdad es que no me explico No veo el porqué NOTA: para hacer uso de la evaluación hago empleo de la función evaluateperiod() que se encuentra incorporada en el pas. No se cuantos foristas entienden de lo que ando hablando... pero si alguien entiende un poquito de esto... no estaría de más una orientación. No pido una solución, sino si es posible que me indiquen o me orienten. Saludos, Última edición por Delphius fecha: 04-04-2006 a las 05:19:42. Razón: Correcciones y aclaraciones |
#2
|
||||
|
||||
Yo de esto ni idea, pero lo he puesto a correr con los siguientes parámetros:
Método: Multiplicativo Semilla: 19 Serie : 211 Factor A: 211 Módulo: 10^8 Los resultados si salen y no da ningun error al pulsar en "Generar". Al pulsar en "Evaluar" dice que el periodo converge en X5.000.000 (pongo los puntos por legibilidad). Los ultimos resultados son: Código:
X205: 20346969 X206: 93210459 X207: 67406849 X208: 22845139 X209: 20324329 X210: 88433419 Generado en 1153 milisegundos Por cierto, en la línea 289 si "ms" es igual a cero, se obtiene una división por cero, es una tontería... pero no está de más decirla. Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
#3
|
||||
|
||||
¿En serio?
Pues, te lo aseguro.... ingresé esos valores.... lo intenté varias veces.... ¿será mi procesador el que no se la aguanta?
Cita:
La verdad es que no se que puede ser... Lo intentaré de nuevo... Cita:
|
#4
|
||||
|
||||
Listo...
Pues debo decir que ahora anda todo ok.... bueno... me largó el resultado.... ¿No se que c... pasó? Se congeló por unos momentos la ventana... pero en fin funcionó!
Debe ser como digiste Lepe... a lo mejor metí muy mal el dedo Ahora me puedo responder a un hilo muy viejo que había iniciado... el límite del STtringList... es de nada menos que de 2^16 items. Lo pude comprobar cuando ingresé que me genere 500.000 números. Gracias Lepe y a cualquier persona que se haya molestado en leer este hilo. Saludos, |
#5
|
||||
|
||||
Hola,
Cita:
|
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
sobre P2P | Delphius | Varios | 2 | 12-02-2005 19:22:10 |
Sobre BDE | erfedecai | Conexión con bases de datos | 6 | 11-06-2004 13:34:27 |
No me permite cambiar un dominio de Int64 a integer | apicito | Firebird e Interbase | 2 | 25-05-2004 19:05:04 |
Sobre DLL | ElCherchu | Varios | 2 | 26-06-2003 19:03:42 |
|