Cómo escribir una función rand() en C que genere funcionalmente 10 enteros aleatorios entre 0 y 100
Los materiales que deben prepararse incluyen: computadora y compilador de lenguaje C.
1. Primero abra el compilador de lenguaje C y cree un nuevo archivo .cpp inicial, por ejemplo: test.cpp.
2. Ingrese el código C en el archivo test.cpp:
for (int i = 0; i lt; 10; i )
printf ( " d ", rand() 100 1);
3. El compilador ejecuta el archivo test.cpp y se generan con éxito 10 números enteros en el rango de 1 a 100 a través de rand.
Extensión:
Sin embargo, tenga en cuenta que el llamado "número pseudoaleatorio" no significa un número pseudoaleatorio. De hecho, los números aleatorios absolutos son solo un estado ideal de números aleatorios, y las computadoras solo pueden generar números relativamente aleatorios, es decir, números pseudoaleatorios. Los números pseudoaleatorios generados por la computadora son números aleatorios y regulares; algunos de ellos siguen ciertas reglas.
Algunos de ellos no siguen ninguna regla. Por ejemplo, "No hay dos hojas que tengan exactamente la misma forma", lo que refleja la esencia de las cosas: diferencias, pero las hojas de cada árbol tienen formas similares;
Esta es la maldita naturaleza de las cosas: la regularidad. Desde esta perspectiva, podemos aceptar el hecho de que las computadoras sólo pueden generar números pseudoaleatorios, pero no números absolutamente aleatorios.
El sistema llamará automáticamente a srand() antes de rand(). Si el usuario llama a srand() antes de rand(), asigne un valor al parámetro semilla.
Luego, rand() usará el valor de semilla como valor inicial para generar un número pseudoaleatorio si el usuario no llama a srand() antes de rand(), el sistema usará 1 de forma predeterminada; como valor inicial del número pseudoaleatorio. Si se proporciona un valor fijo, la secuencia de números aleatorios generada por rand() será la misma cada vez.
Por lo tanto, para evitar la situación anterior, generalmente se usa srand((unsigned)time(0)) o srand((unsigned)time(NULL)) para generar semillas. Si todavía siente que el intervalo de tiempo es demasiado pequeño.
Puedes multiplicar el tiempo (sin signo) (0) o el tiempo (sin signo) (NULL) por algún número entero adecuado. Por ejemplo, srand((unsigned)time(NULL)*10)