Red de conocimiento informático - Computadora portátil - Cómo establecer una semilla de tiempo fija en lenguaje C

Cómo establecer una semilla de tiempo fija en lenguaje C

Los números aleatorios generados por computadora no son verdaderamente aleatorios, por eso se les llama números pseudoaleatorios.

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 ){

printf( "d

", rand());

// Tome del 1.º al 5.º números aleatorios de la secuencia en secuencia

}

5 cambios de números

.