Función rand () en lenguaje C

Rand Function C Language



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

Archivo de cabecera:

stdlib.h







Sintaxis:

int rand (vacío)



Valores devueltos:

Esta función devuelve el siguiente número pseudoaleatorio de la serie. El valor del rango de la serie numérica está 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 la función rand (). El valor de RAND_MAX es mayor pero no menor que 32767 dependiendo de las bibliotecas de C.



//Example1.c

#incluir
#incluir

En tprincipal()
{

En tI;

printf ('10 números aleatorios => orte');

por(I=0;I<10;I++)
{
printf ('%D ', hilera ());
}

printf (' orte');
regreso 0;
}


En Example1.c, llamamos a la función rand () en cada iteración del ciclo for e imprimimos el valor de retorno de la función. La secuencia de valores de la función rand () es la misma cada vez que ejecutamos el programa. De forma predeterminada, la semilla de la función rand se establece en 1.





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

Función srand ():

Archivo de cabecera:

stdlib.h



Sintaxis:

int srand (semilla int sin firmar)

Argumentos:

Esta función toma 1 argumento

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

Valores devueltos:

Ninguno

//Example2.c

#incluir
#incluir
#incluir

En tprincipal()
{

En tI;

srand ( tiempo (0));

printf ('10 números aleatorios => orte');

por(I=0;I<10;I++)
{
printf ('%D ', hilera ());
}

printf (' orte');
regreso 0;
}


En Example2.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 (), función time (0) (declarada en tiempo.h archivo de encabezado) se utiliza como semilla. Esta función de tiempo (0) 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.

//Example3.c

#incluir
#incluir
#incluir

En tprincipal()
{

En tI;

srand ( tiempo (0));

printf ('10 Números aleatorios entre 1 y 10 => orte');

por(I=0;I<10;I++)
{
printf ('%D ',( hilera () %10) + 1);
}

printf (' orte');
regreso 0;
}


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

//Example4.c

#incluir
#incluir
#incluir

En tprincipal()
{

En tI,max,min;

printf ('Introduzca el valor mínimo =>');
scanf ('%D',&min);
printf ('Ingrese el valor máximo =>');
scanf ('%D',&max);

si(min>max)
{
printf ('El valor mínimo es mayor que el valor máximo orte');
regreso 0;
}

srand ( tiempo (0));


printf ('10 Números aleatorios entre% d y% d => orte',min,max);

por(I=0;I<10;I++)
{
printf ('%D ',( hilera () % (max-min+1)) +min);
}

printf (' orte');
regreso 0;
}


En Example4.c tomamos el rango del usuario y generamos un número aleatorio dentro de este rango. La formula es: rand ()% (max - min +1)) + min

//Example5.c

#incluir
#incluir
#incluir

En tprincipal()
{

En tI;

srand ( tiempo (0));

printf ('10 Números aleatorios entre 0.0 y 1.0 => orte');

por(I=0;I<10;I++)
{
printf ('% f',((flotador) hilera () /RAND_MAX));
}

printf (' orte');
regreso 0;
}


En Example5.c, hemos visto cómo podemos generar números aleatorios entre float 0.0 y 1.0 La fórmula es: (flotante) rand () / RAND_MAX)

//Example6.c

#incluir
#incluir
#incluir

En tprincipal()
{

En tI;
flotadormax,min;

printf ('Introduzca el valor mínimo =>');
scanf ('%F',&min);
printf ('Ingrese el valor máximo =>');
scanf ('%F',&max);

si(min>max)
{
printf ('El valor mínimo es mayor que el valor máximo orte');
regreso 0;
}

srand ( tiempo (0));

printf ('10 Números aleatorios entre% f y% f => orte',min,max);

por(I=0;I<10;I++)
{
printf ('% f',min+ ((flotador) hilera () /(RAND_MAX/(max-min))));
}

printf (' orte');
regreso 0;
}


En Example6.c, tomamos el rango del usuario y generamos un número aleatorio dentro de este rango (ambos incluidos). La formula es: min + ((flotante) rand () / (RAND_MAX / (max - min)))

Conclusión:

En este artículo, hemos aprendido cómo se pueden generar números aleatorios usando el hilera() 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 un uso casual.