función rand en lenguaje C

función rand en lenguaje C
En el idioma C, el rand () la función se usa para Generador de números de pseudo (PRNG). Los números aleatorios generados por la función rand () no son realmente aleatorios. Es una secuencia que se repite periódicamente, pero el período es tan grande que podemos ignorarla. El rand () La función funciona recordando un valor de semilla que se utiliza para calcular el siguiente número aleatorio y la siguiente nueva semilla. En este artículo, vamos a discutir en detalle cómo se pueden generar números aleatorios utilizando el rand () función. Entonces empecemos!

Archivo de cabecera:

stdlib.H

Sintaxis:

int rand (nulo)

Valores de retorno:

Esta función devuelve el siguiente número de pseudo-aleatorio en la serie. El valor de rango de la serie de números es entre 0 y rand_max. Rand_max es una macro definida en stdlib.H Archivo de encabezado, cuyo valor es el valor máximo, que puede devolver por la función rand (). El valor de rand_max es mayor pero no inferior a 32767 dependiendo de las bibliotecas C.

//Ejemplo 1.C
#incluir
#incluir
int main ()

int i;
printf ("10 números aleatorios => \ n");
para (i = 0; i<10;i++)

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

printf ("\ n");
regresar 0;


En el ejemplo1.c, llamamos a la función rand () en cada iteración de for bucle e imprime el valor de retorno de la función. La secuencia de valor de la función rand () es la misma cada vez que ejecutamos el programa. Por defecto, la semilla de la función RAND se establece en 1.

Podemos configurar la semilla para la función RAND utilizando el srand () función. La semilla se puede establecer solo una vez y antes de la primera vez rand () Llamada de función.

función srand ():

Archivo de cabecera:

stdlib.H

Sintaxis:

int srand (unsigned int semilla)

Argumentos:

Esta función toma 1 argumento

semilla: Un valor entero utilizado como semilla para una nueva serie de números pseudo-aleatorios.

Valores de retorno:

Ninguno

// Ejemplo2.C
#incluir
#incluir
#incluir
int main ()

int i;
srand (tiempo (0));
printf ("10 números aleatorios => \ n");
para (i = 0; i<10;i++)

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

printf ("\ n");
regresar 0;


En el ejemplo2.c, hemos usado la función srand () para establecer la semilla inicial de la secuencia de números aleatorios generada por la función rand (). Cada vez que se ejecuta el programa, se genera una secuencia diferente. En srand (), tiempo (0) función (declarada en tiempo.H El archivo de encabezado) se usa como semilla. Esta vez (0) función devuelve el número de segundos transcurridos desde la época (00:00:00, 1 de enero de 1970). Esto aún puede producir las mismas secuencias si ejecuta el programa en el mismo segundo.

// Ejemplo3.C
#incluir
#incluir
#incluir
int main ()

int i;
srand (tiempo (0));
printf ("10 números aleatorios entre 1 y 10 => \ n");
para (i = 0; i<10;i++)

printf (" %d", (rand () %10) + 1);

printf ("\ n");
regresar 0;


En el ejemplo3.c hemos visto cómo se pueden generar números aleatorios entre 1 y 10.

// Ejemplo4.C
#incluir
#incluir
#incluir
int main ()

int i, max, min;
printf ("Ingrese min value =>");
scanf ("%d", y min);
printf ("Ingrese max valor =>");
scanf ("%d", y max);
if (min> max)

printf ("El valor min es mayor que el valor máximo \ n");
regresar 0;

srand (tiempo (0));
printf ("10 números aleatorios entre %d y %d => \ n", min, max);
para (i = 0; i<10;i++)

printf (" % d", (rand () % (max - min +1)) + min);

printf ("\ n");
regresar 0;


En el ejemplo4.c Hemos tomado el rango del usuario y generamos un número aleatorio dentro de este rango. La fórmula es: rand () % (max - min +1)) + min

// Ejemplo5.C
#incluir
#incluir
#incluir
int main ()

int i;
srand (tiempo (0));
printf ("10 números aleatorios entre 0.0 y 1.0 => \ n ");
para (i = 0; i<10;i++)

printf ("%f", ((float) rand () /rand_max));

printf ("\ n");
regresar 0;


En el ejemplo5.C, hemos visto cómo podemos generar números aleatorios entre Float 0.0 y 1.0 La fórmula es: (flotar) rand () /rand_max)

// Ejemplo6.C
#incluir
#incluir
#incluir
int main ()

int i;
flotante max, min;
printf ("Ingrese min value =>");
scanf ("%f", y min);
printf ("Ingrese max valor =>");
scanf ("%f", y max);
if (min> max)

printf ("El valor min es mayor que el valor máximo \ n");
regresar 0;

srand (tiempo (0));
printf ("10 números aleatorios entre %f y %f => \ n", min, max);
para (i = 0; i<10;i++)

printf ("%f", min + ((float) rand () /(rand_max /(max - min))));

printf ("\ n");
regresar 0;


En el ejemplo6.C, hemos tomado el rango del usuario y generamos un número aleatorio dentro de este rango (ambos inclusive). La fórmula es: min + ((float) rand () /(rand_max /(max - min)))

Conclusión:

En este artículo, hemos aprendido cómo se pueden generar números aleatorios utilizando el rand () y srand () función. No hay garantías sobre la calidad de los números aleatorios generados por la función RAND, pero es lo suficientemente bueno para uso casual.