funcion random
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?
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.
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.
