funcion random

eing
21 de Enero del 2006
Estoy utilizando la funcion random, y haciendo pruebas, me doy cuenta que en todas las ejecuciones de mi programa la funcion random me devuelve la misma secuencia de valores. Alguien sabe como solucionar esto?

chuidiang
21 de Enero del 2006
Suele haber una función asociada (depende de tu compilador) que puede ser srand(), randomize() o algo similar que admite de parametro un entero llamado semilla (seed).

Para un valor concreto de esa semilla, la secuencia de aleatorios es siempre la misma. Lo habitual es pasar una semilla más o menos "aleatoria" que suele ser la fecha-hora del sistema en segundos. De esta forma, la secuencia aleatoria dependerá del instante en el que arranques tu programa, que será siempre distinto.

En linux, el código para esto sería algo así

srand (time(NULL)); // La semilla es el instante actual.

int aleatorio = rand(); // Es distinto en cada ejecución

Basta hacer una única llamada a srand() al principio del programa.

Se bueno.

eing
21 de Enero del 2006
Muchas gracias chuidiang