Usamos cookies propias y de terceros que entre otras cosas recogen datos sobre sus hábitos de navegación para mostrarle publicidad personalizada y realizar análisis de uso de nuestro sitio.
Si continúas navegando consideramos que aceptas su uso. OK Más información | Y más

Función srand en C++




Hola amig@s! Continuando con la serie de mini tutoriales de C++, veremos una breve explicación sobre la función srand, en el anterior tutorial explicamos la función rand para generar números aleatorios; en el cual explicamos un poco acerca de la estructura, implementación dentro de un simple código, prácticamente srand cumple con el mismo objetivo el cual explicaremos a continuación, sin mas pasamos al tutorial.

Función srand:

La función rand en síntesis genera número pseudo-aleatorios como vimos en el tutorial anterior, y esto sucede al llamar de manera repetida, produciendo  una secuencia de números que aparentan ser aleatorios, sin embargo, la secuencia se repite a sí misma cada vez que se ejecuta el programa. Una vez que el
programa se corrige por completo, se puede condicionar para producir una secuencia diferente de números aleatorios para cada ejecución, ok esto quedó claro, pero también se puede condicionar para producir una secuencia diferente de números aleatorios para cada ejecución, a esto se le llama randomizar y se lleva a cabo mediante la función srand .

La función srand se expresa en el lenguaje de esta manera:

void srand(unsigned int semilla);

Tomando en cuenta que srand toma un valor "semilla"( eje. unsigned numero semilla ). El cual usa el argumento como una semilla para una secuencia nueva de números pseudo-aleatorios para ser devueltos por llamadas posteriores a rand.

Veamos el siguiente código:


Compilado y ejecutado:



Bien analicemos brevemente este código, tomando de referencia que las librerías <cstdlib>, <iomanip> y el manipulador de flujo setw fueron explicados en el anterior post, si te lo perdiste Función rand...

En la línea 14 utilizamos el tipo de dato unsigned( unsigned int ), para la semilla o número semilla, este tipo de dato es tomado por srand como un argumento, unsigned int  de 2 bytes solo puede tener valores positivos entre 0 a 65,535 y el de 4 bytes de 0 a 4.294,967,392, siempre en valores positivos.

Utilizar solo srand sin rand genera un error de sintaxis, ya que no puede generar números aleatorios por sí mismo, y llamar también mas de 1 vez a la función srand no es correcto, ya que afecta la secuencia del pseudo-número y claro afectaría al trabajo que hace rand.

Si quisiéramos randomizar sin necesidad de usar una semilla cada vez que ejecutemos nuestro programa, es necesario utilizar otro tipo de instrucción: srand(time(NULL)) , esto hace que el programa tome el horario del reloj de nuestra computadora para obtener la "semilla", pero para ello hay que llamar otra librería como <ctime>.

Si desean números aleatorios que no se repitan, hay que hacer otro tipo de código un poco mas complejo para explicarlo en este momento, ya que se incluirían arreglos y hay que explicar antes ese punto, pero si les urge una ayuda para generar números aleatorios sin repetición pueden comentarlo y con gusto les puedo ayudar, aunque está mal dicho eso de "sin repetición" jejejee ya que no hay un método preciso para ello, lo que se hace es un tipo de "verificación" , para ver si ya ha generado y así no desplegarlo en la pantalla.


Bueno otro punto que quiero dejar claro nuevamente, como fue mencionado en los primeros post, es el uso correcto del espacio nombre namespace std::, siempre para la buena programación hay que incluir una a una las librerías a usar y no sobrecargar nuestro código con llamados a librerías que no se utilizan, ya que si escriben using namespace std; estarían haciendo llamado a TODOS los componentes del espacio nombre y en códigos simples NO utilizamos todos.


Hasta aquí con este mini tutorial, espero sea de ayuda, si tienen dudas estamos para ayudarles me suscribo de ustedes...by 4uxx.

0 comentarios :

>

Publicar un comentario

 
Copyright © Developers For Life