Obtener numeros aleatorios en C++ (rand, srand)
Es algo muy frecuente, cuando ya dominas todo eso de pedir y almacenar datos, ahora tu profesor te pedirá que tus programas generen números aleatorios para automatizar el proceso de llenar arreglos y todo eso.
Así que lo primero que tenemos que hacer es incluir la librería:
#include<stdlib.h>
Luego inicializar los números aleatorios incluyendo esto:
srand(time(NULL));
Luego guardar el número aleatorio en alguna parte:
num=rand();
Eso es básicamente. Para ajustar el rango de número aleatorios podemos hacer varias cosas.
Número aleatorios entre 0 y 50:
num=rand()%51;
Número aleatorios entre 1 y 100:
num=1+rand()%(100-1);
Número aleatorios entre 250 y 420:
num=250+rand()%(420-250);
De forma general es:
variable = limite_inferior + rand() % (limite_superior - limite_inferior) ;
Así que un programa que muestre 10 números aleatorios entre 1 y 10 quedaría así:
#include<stdlib.h> #include<iostream> using namespace std; int main() { int num,c; srand(time(NULL)); for(c=1;c<=10;c++) { num=1+rand()%(10-1); cout<<num<<" "; } cin.get(); }
Hola… muy buen aporte.. solo me parece k he encontrado un pekeño error donde dice rango 1-100. creo k deberia ser
num=1+rand()%99;
segun la formula general propuesta
variable = limite_inferior + rand() % (limite_superior – limite_inferior)
ya que kedaria
variable = 1 + rand()% (100-1);
variable = 1 + rand()% 99;
Si tienes razón, pero ahí arriba dice que el rango es de 1 a 10 y el programa dice num=1+rand()%(10-1);
el programa si esta bien redactado, a lo ke me referia era a la explicacion abajito de : “Eso esa basicamente…etc etc etc etc”.. estas de acuerdo?
Ok!, ya entendí (4 meses después) jaja. Ahora lo corrijo. Gracias :D