Introducción al generador de números aleatorios en C

Para generar la salida esperada, el programa debe necesitar la entrada adecuada. Por lo general, las entradas son proporcionadas por el usuario, pero a veces el programa tiene que elegir la entrada por sí mismo. Por ejemplo, para obtener la marca de tiempo actual, la aplicación utiliza una función incorporada para obtenerla del sistema. Del mismo modo, a veces necesitamos que la aplicación genere cualquier número aleatorio que pueda procesarse aún más para obtener el supuesto resultado. Aunque parezca aleatorio para el usuario, el lenguaje de programación nos ofrece el mecanismo para definir el rango del número aleatorio. En este artículo, veremos la implementación del programa de generación de números aleatorios usando el lenguaje de programación C. Nos centraremos en la función incorporada que proporciona C para generar un número aleatorio.

¿Qué son las funciones de generador de números aleatorios en C?

Existen varios enfoques para generar el número aleatorio utilizando cualquiera de los lenguajes de programación. Se puede definir la función de su propia manera de estimar o generar el número aleatorio mientras hay funciones incorporadas en cualquiera de los lenguajes de programación que generan el número aleatorio. En el lenguaje de programación C, tenemos una función llamada rand, que ayuda a generar el número aleatorio. Esta función viene predefinida en C y se puede implementar en el programa usando el archivo de encabezado stdlib.h. El desarrollador debe mencionar el archivo de encabezado stdlib.h al comienzo del programa para aprovechar la función rand. Cada vez que se llama a esta función, genera un número totalmente aleatorio. Según el requisito, se puede generar que el número pertenece al tipo de datos entero, flotante o doble. Se puede usar simplemente en el programa usando la función rand ().

Aunque se supone que la función rand genera el valor aleatorio, se atasca para generar el mismo valor cada vez que se ejecuta el programa y puede suceder debido al valor inicial constante. Si el requisito es tener el nuevo número aleatorio generado cada vez que se ejecuta el programa, debemos asegurarnos de que la semilla cambie siempre que se ejecute el programa. El tiempo es algo que sigue cambiando y también puede considerarse como algo que puede ayudar a obtener un valor inicial aleatorio cada vez y para usar el tiempo en el programa, tenemos que usar el archivo de encabezado time.h.

Generación de enteros

La función rand () se usa para generar un número aleatorio. Cada vez que se llama, da un número aleatorio. Si los desarrolladores agregan algo de lógica, pueden generar el número aleatorio dentro de un rango definido y si el rango no se define explícitamente, devolverá un valor entero totalmente aleatorio. La función rand () en C podría usarse para generar el número aleatorio y el número generado está eliminando totalmente la semilla. Una semilla es el valor que utiliza la función rand para generar el valor aleatorio. Si el valor inicial se mantiene cambiando, el número generado será nuevo cada vez que se compila el programa; de lo contrario, devolverá el mismo valor cada vez que se generó cuando el programa se ejecutó primero. Para generar el siguiente es el programa para generar el número entero aleatorio.

Programa

#include
#include
#include
int main()
(
int rand_num;
srand(time(0));
printf("The randomly generated number is”);
rand_num = rand();
printf("%d\n", rand_num);
)
)

Salida:

El número generado aleatoriamente es 1804289383.

En este programa, hemos utilizado el archivo de encabezado time.h que se utiliza para aprovechar el tiempo del sistema al generar el número aleatorio. A medida que el tiempo cambia cada vez, el valor de la semilla cambiará cada vez que se ejecute el programa, lo que nos ayuda a generar un número aleatorio cada vez que se ejecuta el programa. Rand_num es la variable que se usa para almacenar un número generado aleatoriamente. La función rand () genera un número aleatorio que se asigna a la variable rand_num. Como no definimos el valor de retorno del número aleatorio explícitamente, nos dará un número entero.

Generando números de coma flotante

El enfoque para generar el valor flotante aleatorio es similar al enfoque para generar el número entero. La única diferencia es que necesitaremos definir explícitamente que el valor que esperamos de la función rand debe ser flotante. El valor flotante generalmente consume más espacio en el almacenamiento en comparación con el int corto. El programa que hemos escrito anteriormente para la generación aleatoria de valores enteros será el mismo que vamos a escribir aquí. La única diferencia será una definición explícita de tipo de datos. Similar al último programa, también hemos usado el archivo de encabezado time.h aquí para permitir que contribuya en la generación aleatoria de números flotantes. Si este archivo de encabezado no está incluido en el programa, dará el mismo valor cada vez que el programa. Es ejecutado. A continuación se muestra el programa para la generación aleatoria de valor flotante.

Programa

#include
#include
#include
int main()
(
float rand_num;
srand(time(0));
printf("The randomly generated float number is ”);
rand_num = (float) rand();
printf("%f", rand_num);
)
)

Salida:

En este programa, hemos utilizado (flotante) que se utiliza para definir explícitamente que el valor devuelto por la función rand debe ser de naturaleza flotante. Como la variable ran_num también se define con un tipo de datos flotante, podrá manejar el número flotante que generalmente tiene seis dígitos después del punto decimal cuando se genera en el lenguaje de programación C. Al imprimir el valor flotante, hemos utilizado% f ya que es algo que debe tenerse en cuenta al imprimir el valor flotante.

Conclusión

Para mejorar la aleatoriedad del número, uno puede aprovechar las expresiones matemáticas. Además, el uso de la lógica también puede definir el rango de números bajo el cual desean que el número se genere aleatoriamente. Todos los lenguajes de programación proporcionan la función para generar caucho aleatorio y se utilizan en la aplicación real según el requisito. Para asegurar la aleatoriedad fuerte del número, tenemos que asegurarnos de que la función semilla que se usa para generar el valor aleatorio debe ser muy aleatoria y nueva cada vez que se ejecuta el programa.

Artículos recomendados

Esta es una guía del Generador de números aleatorios en C. Aquí discutimos la función, los números enteros de generación y la generación de números de coma flotante en C. También puede consultar nuestros otros artículos sugeridos para obtener más información:

  1. Generador de números aleatorios en R
  2. ¿Qué es la clase de plantilla en C ++?
  3. Algoritmo de bosque aleatorio
  4. Marcos en Java
  5. ¿Qué es el generador de números aleatorios en Python?
  6. Generador de números aleatorios en C ++ (ejemplos con pasos)
  7. Generador de números aleatorios en Matlab
  8. Generador de números aleatorios en C #
  9. Generador de números aleatorios en JavaScript
  10. Generador de números aleatorios en PHP