Generar números aleatorios sin que se repitan |
|
|
|
Escrito por adrianvaca
|
Martes, 22 de Marzo de 2011 22:57 |
En realidad no hay forma de garantizar que los números generados aleatoriamente no se repitan, lo que puedes hacer es que cuando generas un número aleatorio, verificar que este no se haya generado antes, fíjate en el siguiente código:
srand(time(0)); // iniciando la semilla aleatoria
// Formula a + rand() % (b-a+1)
// eligiendo 15 numeros aleatorios distintos entre 1 y 50 for(i=0;i<15;i++) { // Genera numero aleatorio int num = 1 + rand()%50;
if(i>0) { // Verifica si no se ha generado antes for(j=0; j < i; j++) if(num==vector[j]) { num = 1 + rand()%50; j=-1; } }
vector [ i ] =num; } |
|