Cómo establecer una semilla de tiempo fija en lenguaje C
Cuando la semilla de predicción es fija, la secuencia de números aleatorios que genera es constante. Por ejemplo, si se generan 10 números, el tamaño de estos 10 números cambiará, pero mientras se use esta semilla, Estos 10 números se generarán cada vez. La secuencia de números es exactamente la misma.
Utilice
srand(time(0));
Al configurar la semilla, debido al cambio de tiempo, obtendrá una semilla diferente y luego un número aleatorio La secuencia cambiará.
time(0)
es la hora actual (la precisión puede ser de milisegundos). Siempre que la diferencia de tiempo entre las dos ejecuciones del programa sea superior a 1 milisegundo, las dos secuencias serán diferentes (aleatoriamente). Sin embargo, si la diferencia de tiempo es inferior a 1 milisegundo, las dos secuencias permanecerán sin cambios.
--------
Programa de error:
for
(i=0;ilt;5;i ){
srand(time(0));
Semilla si no cambia 5 veces
printf("d
", rand());
//
Toma las
5 secuencias en secuencia
El primer número de las 5 secuencias
}
El número permanece sin cambios 5 veces.
------------------
Programa correcto:
srand(time(0)) ;
//
Establezca 1 semilla
para
(i=0; ilt; 5; i ){ p>
printf( "d
", rand());
// Tome del 1.º al 5.º números aleatorios de la secuencia en secuencia
}
5 cambios de números
.