Cómo usar la función SRAND en C ++

Cómo usar la función SRAND en C ++

En este artículo, discutiremos cómo podemos usar la función srand () en C ++ mientras escribe programas en Ubuntu 20.04. La función srand () es la semilla que usa la función rand () para generar números aleatorios. Ambas funciones se definen en el encabezado STDLIB. Como usamos la función srand () para establecer la semilla en la función rand (), está vinculada a la función rand (). La función srand () toma el valor de la semilla en un tipo entero sin firmar. El valor de la semilla es el lugar de inicio para la generación de números aleatorios de la función rand (), por ejemplo, srand (5). La función srand () no devuelve ningún valor. El valor de semilla predeterminado de la función SRAND se establece como "1". Entonces, si no llamamos a la función srand () antes de la función rand (), será lo mismo que escribir "srand (1)".

Comprender la relación entre rand () y srand () función:

Cuando usamos la función rand () en nuestro código, siempre obtenemos el mismo número aleatorio cada vez que la compilamos. Veamos un ejemplo en el que comprenderemos mejor cómo funciona la función RAND sin srand ().

Uso de la función rand () sin la función srand () en Ubuntu 20.04:

Abra la terminal y haga un .Archivo CPP escribiendo y ejecutando el comando "toque" con el nombre de archivo y la extensión de .CPP. Luego, localice y abra su .archivo CPP. Ahora escriba un código simple para generar números aleatorios sin usar la función srand ().

El archivo debe guardar y luego cerrarse. Abra el terminal nuevamente y compile el archivo con este comando "G ++" junto con el nombre y la extensión de su archivo. Esto generará una salida para su archivo después de la compilación, generalmente con la extensión de ".afuera."Ahora ejecute el archivo de salida escribiendo este comando"./”Junto con su nombre de archivo de salida

Como puede ver en el ejemplo anterior, las primeras y segundas salidas son las mismas porque no usamos la función srand (). Entonces, incluso si repetimos el proceso varias veces, la salida será la misma porque el valor de la semilla se establece de forma predeterminada en 1.

Veremos cómo la función rand () funcionará con la función srand ().

Rand () función con el uso de la función srand () en Ubuntu 20.04:

Abra la terminal y haga un .Archivo CPP escribiendo y ejecutando el comando "toque" con el nombre de archivo y la extensión de .CPP. Luego, localice y abra su .archivo CPP. Ahora escribiremos un código para generar números aleatorios y usaremos la función srand () con diferentes valores de semillas.

El archivo debe guardar y luego cerrarse. Abra el terminal nuevamente y compile el archivo con este comando "G ++" junto con el nombre y la extensión de su archivo. Esto generará una salida para su archivo después de la compilación, generalmente con la extensión de ".afuera."Ahora ejecute el archivo de salida escribiendo este comando"./”Junto con su nombre de archivo de salida.

Ahora, podemos ver que usar la función srand () con diferentes valores de semillas proporciona un número aleatorio diferente. Entonces, si seguimos cambiando el valor de la semilla que es el parámetro de la función srand (), los números aleatorios siempre serán diferentes entre sí. El valor de la semilla se establece como "1" en la primera línea de salida, por lo que el número aleatorio generado por este valor de semilla es 1804289383, y cuando cambiamos el valor de la semilla a 5, el número aleatorio generado ahora cambia a 590011675, por lo que esto El cambio ocurrió debido a la diferencia en el valor de la semilla.

Después de mirar este ejemplo, podemos concluir que la función rand () sin la función srand () no funciona hasta el estándar del programa PRNG (generador de números pseudo aleatorios), que genera números aleatorios según la acreditación del valor de la semilla, En el lenguaje C ++. Este programa incluye las funciones rand () y srand () para generar números aleatorios en la programación de C ++. Por lo tanto, siempre debemos usar la función srand () mientras usamos la función rand () para generar números aleatorios distintos.

El número srand () con diferentes valores de semillas sigue cambiando los números aleatorios generados, haciendo que la función rand () sea más eficiente. Pero debemos seguir cambiando el valor de la semilla cada vez, ya que el valor de la semilla se debe dar antes de llamar a la función rand (). Entonces, la mejor manera de seguir haciendo eso es usar la función TIME (0), que da el tiempo exacto en segundos en la forma entera sin firmar de la misma manera que el parámetro de la función SRAND (). Entonces, la salida del tiempo (0) siempre seguirá cambiando y, por lo tanto, la salida de la función rand () también seguirá cambiando cada segundo.

Uso de la función srand () con el tiempo (0) como parámetro:

Como discutimos anteriormente que el valor de la semilla de la función se establece como "1", por lo que debemos cambiar el valor de la semilla constantemente y antes de que se llame a la función rand (). Estos puntos son vitales para la eficiencia de generar funciones aleatorias, por lo que debemos pensar en tal manera que reduzca el proceso de pensamiento del codificador y la potencia de procesamiento del dispositivo también. Este problema se resuelve por la función Time () en el lenguaje C ++, que da el tiempo exacto en el momento dado en el que está ejecutando la tarea en su dispositivo, también conocida como la marca de tiempo. Entonces, si agregamos la función de tiempo (0) como el parámetro de la función srand (), que es su valor de semilla, dará el tiempo total en segundos como entero a la función srand () y seguirá cambiando en cada tiempo lo usamos. La función Time () se define en el encabezado CTime, por lo que tendremos que agregar esto en nuestro código. Ahora implementaremos esto en nuestro código e intentaremos comprender mejor cómo funciona la función srand () con la función Time () como su parámetro.

Uso de la función srand () con la función de tiempo como su parámetro en Ubuntu 20.04:

Abra la terminal y haga un .Archivo CPP escribiendo y ejecutando el comando "toque" con el nombre de archivo y la extensión de .CPP. Luego, localice y abra su .archivo CPP. Ahora escribiremos un código para generar números aleatorios y usaremos la función Time () para proporcionar diferentes valores de semillas para números distintos generados aleatorios.

El archivo debe guardar y luego cerrarse. Abra el terminal nuevamente y compile el archivo con este comando "G ++" junto con el nombre y la extensión de su archivo. Esto generará una salida para su archivo después de la compilación, generalmente con la extensión de ".afuera."Ahora ejecute el archivo de salida escribiendo este comando"./”Junto con su nombre de archivo de salida

Como podemos ver que después de ejecutar los archivos varias veces, el número aleatorio está cambiando en cada ejecución, por lo que hemos logrado la eficiencia con este método, y seguiremos obteniendo diferentes valores cada vez que ejecutemos la función srand () con el tiempo ( 0) como su parámetro.

Conclusión:

En este artículo, hemos aprendido la relación entre la función rand () y srand () y cómo la función srand () ayuda a la función rand () a generar números aleatorios de manera eficiente mediante el uso de la función de tiempo (). Implementamos todos estos ejemplos de estos conceptos en Ubuntu y dimos una elaboración paso a paso detallada sobre cómo realizarlos en Ubuntu 20.04.