-
Si no recuerdo mal:
Si usas "random" así de priumeras si que usa la hora del sistema o algo parecido.
Pero si pones al principio del programa un "randomize" entonces se crea una especie de variable (pool), en la que va "volcando" todos los datos que pasan por el programa (variables, constantes, E/S, etc…), y cuando llamas a "random" usa esa variable para calcular el numero aleatorio.
De esta manera es un numero aleatorio bastante "puro".
-
Cobito, de momento nadie a sido capaz de conseguir numeros realmente aleatorios, de momento es imposible. Según tengo entendido si se consiguiesen numeros 100% aleatorios la informatica daria el paso mas grande de su historia….
Así que tendras que conformarte con los pseudo-aleatorios que se consiguen actualmente. Si consigues nº 100% aleatorios conseguirias el nobel de algo (hiriamos a medias, no? :vayatela: )dew!!
-
Una pregunta: Eso de captar el ruido en Unix me parece realmente interesante, pero se puede hacer en C?
Por otra parte me gustaria que alguien me pusiera codigo fuente de ejemplo sobre como crear numeros aleatorios con randomize ya que he buscado en google y no encuentro nada al respecto.Gracias.
PD: Lo del premio nobel lo dejare para otro momento porque me da vergüenza salir en publico :rolleyes:
-
Si esque no tiene nada el codigo:
Tu pones:
randomize();
Y luego cada vez que quieras un numero haces
mi_numero = random(1);
Lo que te da un numero aleatorio entre 0 y 1. Que luego multiplicando por lo que sea obtienes un numero entre los intervalos que necesites.
-
Pero que biblioteca tengo que incluir?
-
pues eso ahora mismo n olo se peeor el tito google seguro que si
-
He estado buscando en el google y no he encontrado informacion concluyente, es decir, he visto ejemplos mal hechos porque con dos compliladores (visual c++ y devpp) me dicen que randomize no esta declarada a pesar de haber incluido las librerias oportunas (segun dicho ejemplo). Alguien sabe en que libreria se encuentra esta funcion?
-
Prueba aver asi:
randomize()
rand()%101
#esto te genera valores aleatorios entre 0 y 100randomize()
1+rand()%101
#y esto de 1 a 100prueba aver si te funciona, la sentencia creo q era asi
AGURA!!
-
Cobito, al final funcionaba como te comente?? o como lo as echo??
AGURA!!
-
He probado:
randomize()
rand()%101
#esto te genera valores aleatorios entre 0 y 100y funciona perfectamente.
Gracias por la ayuda.
-
Que diferencia hay entre random() y rand() ademas de la sintaxis? Cual es mejor?
-
el rand es lo q hace los numeros aleatorios, pero sin el randomize(q seria aleatorizar el rand), pos esos numeros se acabarian repitiendose, creo q se repiten cuando ejecutas el proyecto por segunda vez, la 1º puede q parezca q no se repiten pero apartir de hay los numeros seran los mismo. Por eso utilizamos el randomize para evitar eso. De nada hombre!! Me alegro de q te sirviera de ayuda
AGURA!!!
-
Sin el randomize creo que todas las ejecuciones del programa tendrán los mismos numeros aleatorios.
De manera que son aleatorios en cada ejecución, pero viendo ejecuciones distintas son iguales.
Con el randomize evitas eso.
-
Ya, pero no me referia a eso, sino a la diferencia entre random() (no randomize) y rand(). Por ejemplo: para generar numeros aleatorios entre 0 y 9 se puede usar rand()%10 o bien random(10). Mi pregunta es ¿en que se diferencian ambas intrucciones? y ¿cual es mejor?
Un saludo.
-
Pues eso no lo se, yo siempre habia usado el rand() asiq nose contestarte
AGURA!!