Estoy tratando de llenar una matriz de 20 ints con números del 1-20 en secuencia al azar. aquí es mi código:llenando una matriz con número aleatorio
int lookup[20]={0};
int array[20]={0};
srand(time(NULL));
for(int i=0;i<20;++i){
bool done=false;
while(!done){
int n=rand()%20;
if(lookup[n]==0){
array[i]=n;
lookup[n]=1;
done=true;
}
}
}
He creado una matriz de búsqueda para comprobar si el número aleatorio aún no se elige y se almacena en la matriz. Como puede ver, he creado 2 bucles, uno para recorrer una matriz y el otro para elegir el número aleatorio. En cada iteración de bucle while, el número puede reaparecer y causar otro bucle while. ¿Hay una manera más rápida de hacer esto?
aplicar la etiqueta random-number-generator –
Vea también: http://stackoverflow.com/questions/1218155/random-number-but-dont-repeat, http://stackoverflow.com/questions/1816534/random -playlist-algorithm, http://stackoverflow.com/questions/417831/what-is-the-best-way-of-randomly-re-arranging-a-list-of-items-in-c, http://stackoverflow.com/questions/813935/randomizing-elements-in-an-array – outis