Red de conocimiento informático - Problemas con los teléfonos móviles - ¿Por qué es posible strand(time(null)) en lenguaje C? ¿Cuál es el prototipo de semilla de números aleatorios?

¿Por qué es posible strand(time(null)) en lenguaje C? ¿Cuál es el prototipo de semilla de números aleatorios?

La función para obtener números aleatorios en lenguaje C es rand();?

Un valor aleatorio calificado debe estar completamente hash y el valor debe tener propiedades impredecibles. Se obtiene, pero si es rand. () se llama directamente sin ningún procesamiento, el valor obtenido es fijo. Aquí hay un ejemplo: #include?

#include?

int?main()

{

for(i??=?0;?i??

printf("%d/n",?rand()) ;//Obtén 10 números aleatorios e imprímelos.

return?0;

}

Ejecutar este programa se ve bien porque los 10 números obtenidos están todos en hash, muy parecido a los números aleatorios. Pero si ejecuta este programa repetidamente, encontrará que los 10 números obtenidos son iguales cada vez, lo que no cumple con la propiedad de imprevisibilidad.

Esta es la razón por la que la función de número aleatorio rand() en lenguaje C se llama número pseudoaleatorio.

Utilice la función srand para hacer que los números pseudoaleatorios sean más "reales". Esta función funciona estableciendo una semilla de número aleatorio, y luego los números aleatorios posteriores dependen del valor de la semilla. #include?

#include?

int?main()

{

para(i?? =?0;?i??