Pascal/Turbo Pascal - Problema con el uso del RANDOM

 
Vista:

Problema con el uso del RANDOM

Publicado por Homer (10 intervenciones) el 19/03/2007 10:23:36
Hola tengo un problemita cuando genero numeros con el "random". El problema es que deseo generar X numeros aleatorios entre 30.000.001 y 80.000.000 (quiero generar DNI's automaticamente). Y mi problema es que me genera esos DNI's pero no entra en el rango que le pongo, se me pasa de 80.000.000. Eso sí, no genera ningun codigo menor a 40.000.000

El codigo para generar los DNI que he creado es: "tabla[i]^.dni := trunc (random(80000000) + 40000000)"

¿Qué hago mal? Por qué no me respeta el mayor valor del rango?

Gracias por la ayuda!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Problema con el uso del RANDOM

Publicado por Diego Romero (996 intervenciones) el 19/03/2007 15:54:59
Hola.

Donde pones:
random(80000000)
Se va a generar un número entre 0 y 79999999 a ese número le sumas 40000000, he ahí la causa de tu problema.
Deberías hacer:
random(50000000)+40000000;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problema con el uso del RANDOM

Publicado por Carlos Guimaraenz (265 intervenciones) el 19/03/2007 16:34:12
Homer, Diego, no se si es en todos los compiladores, pero dado que la función Random devuelve un Word, no podrás pasarle como parámetro un número de millones... una alternativa es obtener un número random de 0 a 65535, y a éste multiplicarlo:

Randomize;
rnd := Random(65535);

y luego multiplicas (o sumas, o lo que se te ocurra) por algun valor dado que te dé en un número entre 30.000.001 y 80.000.000.

Un abrazo!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problema con el uso del RANDOM

Publicado por yesica CAMACHO (1 intervención) el 09/03/2008 22:41:15
hola necesito resolver este ejercicio y no lo puedo hacer

desarrollar un algoritmo que solicite un numero de 1 y 9 y asu vez el computador debe generar un numero aleatorio entre 1 y 9 este proceso debe realizarse diez veces el ganador sera el que primero obtengas 5 veces el numero mayor...

esto e sen lengueje DEV C++
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problema con el uso del RANDOM

Publicado por Homer (10 intervenciones) el 19/03/2007 16:53:38
Ok!!! Muchas gracias Diego Romero!!!!

Tenía un concepto erróneo acerca del funcionamiento del ramdom, ok, lo que hace es generar un numero entre 0 y 50000000 y luego le suma 40000000, asi esta dentro del rango que desee cada uno. De nuevo, gracias!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar