ifrit Master


Registrado: 12 Jun 2007Mensajes: 509Ubicación: La Habana, Cuba
|
Publicado: Mar 06 May, 2008 5:17 pm Asunto: los numeros aleatorios y no seudoaleatorios |
|
|
Hola foro,estaba leyendo el post de neg1414, realmente no me aprendi el nick, sorry! pero trataba sobre numeros aleatorios y queria aclarar algo que tiene que ver con este tema y lo utilizo desde hace tiempo.
El caso es que tanto C++ como C generan nuemros seudoaleatorios que van desde 0 hasta random_max. Al llamar a la funcion random esta produce una secuencia de # que parecen ser aleatorios. Sin embargo, cada vez que el programa se ejecuta la secuancia se repetira asi misma es decir si la primera vez genero 1;2;4;5;3 la segunda vez que trates de ejecutar el programa tambien generara estos numeros en el mismo orden , por lo tanto son aleatorios pero seudoaleatorios por sobre todo ya que no varia la secuancia de aleatorios....
Bueno esto se puede cambiar solo con cambiar la semilla (seed), es decir estos numeros se pueden llevar a aleatorios mediante la funcion estandar de la biblioteca srand. La funcion srand toma un argumento entero unsigned, para que en cada ejecucion del programa la funcion random produzca una secuencia diferente de # aleatorios, pero aca encontramos otro dilema y es que cada vez que ejecutemos nuestro programa tendriamos que cambiar la seed para que sea efectivo el uso de srand bueno para eso utilizo el time de la propia PC , la funcion time devuelve la hora actual del dia en sgundos. Este valor se convierte en unsigned y se utiliza como seed para el generador de # aleatorios, la funcion time toma NULL como argumento...
Bueno luego de esta explicacion aca el codigo para que vean lo que les digo:
| Código: |
Randomize();
srand(time(NULL));
Label1->Caption=rando(100);
|
El codigo lo puse dentro de un Timer, y al formulario le agregue un label
Espero les sirva de algo.
saludos de Ifrit  _________________ Todos somos ignorantes, lo que no todos ignoramos lo mismo... |
|