Srand (tiempo (0)) y rand () en lenguaje C

Srand Rand C Language

referencias:

https://blog.csdn.net/kongfanyu/article/details/6387642



https://www.cnblogs.com/xiaoxiaoxin-love-ping/p/3528849.html




La computadora no tiene forma de generar un número aleatorio real, es simulado por un algoritmo, por lo que solo llama a rand, y las cosas que salen son las mismas cada vez. Después de colocar una semilla, se pueden generar diferentes números dependiendo de la semilla. ¿Y cómo asegurar la diferencia en semillas? La forma más fácil es, por supuesto, utilizar el tiempo que siempre está por delante.




srand (time (0)) // Establecer la semilla primero
rand () // luego genera números aleatorios
Srand es un número de semilla aleatorio. Las semillas que haces cada vez son diferentes. El número aleatorio obtenido por Rand es diferente. Para plantar la siguiente semilla diferente cada vez, use Time (0), Time (0) es para obtener el valor de tiempo actual (porque el tiempo no es el mismo en todos los momentos).

srand (tiempo (0))
es darle al algoritmo una semilla de inicio, que es el número de semilla aleatorio del algoritmo. Después de este número, se puede generar el número aleatorio.
Inicialice la semilla de número aleatorio con el número de segundos desde 1970.1.1 hasta el presente.


Caso de referencia



|_+_|


producción:

22614
15772
30620
24913
7556
31659
27876
27229
25083
16564
Pulse cualquier tecla para continuar


¿Cómo se hace un número aleatorio entre [0,6)?

Es necesario modular el valor de retorno de rand () con 6 para asegurar que el número aleatorio de destino esté entre [0, 6), de lo contrario, el valor de retorno de rand () en sí mismo puede ser muy grande.
Una fórmula común es:
Para obtener un número entero aleatorio entre [a, b), use (Rand ()% (b-a)) + a (El valor resultante contendrá a, sin b).
en el caso donde a es 0, abreviado como rand ()% b