【发布时间】:2011-01-23 03:08:01
【问题描述】:
我正在尝试用 1-20 的数字以随机顺序填充 20 个整数的数组。 这是我的代码:
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;
}
}
}
我创建了一个查找数组来检查是否尚未选择随机数并将其存储在数组中。如您所见,我创建了 2 个循环,一个用于遍历数组,一个用于选择随机数。在每次 while 循环迭代中,数字可能会重新出现并导致另一个 while 循环。有更快的方法吗?
【问题讨论】:
-
应用随机数生成器标签