Underc0de

Foros Generales => Dudas y pedidos generales => Mensaje iniciado por: magodiesan en Marzo 19, 2018, 11:37:13 PM

Título: ¿Por qué el número que me genera el rand() siempre es el mismo?
Publicado por: magodiesan en Marzo 19, 2018, 11:37:13 PM


Estoy usando la librería stdlib de c++ para generar un número aleatorio con la función rand() pero resulta que cada vez que compilo me sale 41:
Código (cpp) [Seleccionar]

#include <iostream>   
#include <stdlib.h>   
using namespace std;

int main() {

    int a = rand();
    cout<<a<<endl;

    system("pause");
    return 0;
}


Estoy aprendiendo C++ ahora y no sé que hago mal.
Título: Re:¿Por qué el número que me genera el rand() siempre es el mismo?
Publicado por: andergedon en Marzo 20, 2018, 12:21:34 AM
La función necesita una semilla (seed) para crear los número aleatorios a partir de ese valor. Lo más común en estos casos es que se use la hora actual del sistema como semilla para el generador. Solo agrega srand(time(NULL)) antes de llamar a la función rand()



Código (cpp) [Seleccionar]
   
#include <iostream>   
#include <stdlib.h>
#include <ctime>
using namespace std;
     
int main() {
srand(time(NULL));
        int a = rand();
        cout<<a<<endl;
     
        system("pause");
        return 0;
    }