快速生成随机数等等
1.生成k个[0,n]区间内的随机数
No1.
var arr=[],tmp;
for i[0,n)
arr[i]=0;
do{
tmp = rnd(k);
if arr[tmp]=0{
arr[tmp]=1;
k--;
}
}while(k>=0)
缺点:不能确定循环次数,当n和k相当大的时候,速度慢!
No2.
var arr=[];
for i[0,n)
arr[i]=i;
for i[0,k)
swap(i,rnd(k));
需要额外的方法来交换,不过运行次数为k.