Red de conocimiento informático - Material del sitio web - ¿Cómo generar números aleatorios dentro de un rango determinado usando lenguaje C?

¿Cómo generar números aleatorios dentro de un rango determinado usando lenguaje C?

Usar srand((unsigned int)(time(NULL)) es un método, porque el tiempo de ejecución del programa es diferente cada vez.

Proporcionado en lenguaje C Uso aleatorio Generador de números: los compiladores de C actuales proporcionan una función de generación de números pseudoaleatorios basada en el estándar ANSI, que es el trabajo de las funciones rand() y srand(). El proceso es el siguiente:

1) Primero proporcione una semilla a srand(), que es un tipo int sin signo con un valor que oscila entre 0 y 65535.

2) Luego llame a rand() y devolverá un número aleatorio (entre 0 y 32767); ) basado en el valor inicial proporcionado a srand()

3) Llame a rand() tantas veces como sea necesario para obtener nuevos sin interrupción Números aleatorios;

4) En cualquier momento , puede proporcionar una nueva semilla a srand() para "aleatorizar" aún más la salida de rand().

El siguiente es un programa de números aleatorios entre 0 y 32767:

#include

#include

#include ? // Usa el reloj actual como semilla

void main(void)

{int i;

srand ((unsigned)time( NULL ) ?// Inicializar números aleatorios

for(i = 0; i < 10;i++)?// Imprimir 10 números aleatorios

printf("%d\n", rand() );

}

De acuerdo con el programa anterior, puedes obtener fácilmente un número aleatorio entre 0 y 1:

#include

#include

#include ?

int main()

{int i;

srand((unsigned)time( NULL ) ?

for(i = 0; i < 10; i++)

printf("%5.2f\n", rand()/32767.0);

}

Generar números aleatorios entre 1 y 100 puede escribir así:

#include

#include

#include ?

int main()

{int i;

srand((unsigned)time( NULL ) ?

for(i = 0; i < 10;i++)

printf("%d\n", rand()%101);

}

Información ampliada:

Habilidades de programación eficiente en lenguaje C:

1: Intercambiar espacio por tiempo

La mayor contradicción en los programas de computadora es la contradicción entre espacio y tiempo. esta perspectiva Comience con el pensamiento inverso para considerar la eficiencia del programa

Dos: ¿Métodos matemáticos para resolver problemas?

Las matemáticas son la madre de las computadoras sin la base y el fundamento de las matemáticas. no habrá desarrollo informático, por lo que al escribir un programa, el uso de algunos métodos matemáticos mejorará la eficiencia de ejecución del programa en órdenes de magnitud.

Tres: utilizar operaciones de bits

La tercera forma de lograr una escritura eficiente en lenguaje C es utilizar operaciones de bits para reducir las operaciones de división y módulo.

En los programas de computadora, los bits de datos son las unidades de datos más pequeñas que se pueden manipular. En teoría, las "operaciones de bits" se pueden utilizar para completar todos los cálculos y operaciones. Las operaciones de bits generales se utilizan para controlar el hardware o realizar la transformación de datos. Sin embargo, las operaciones de bits flexibles pueden mejorar efectivamente la eficiencia de la operación del programa.

Enciclopedia Baidu-Lenguaje C