输入包括两个整数m和n,并且m<n。输出一个由m个随机数组成的序列表,这些随机数的范围是0到n,并且每个整数最多出现一次,就概率而言,希望得到不需要替换的选择,并且每个选择的可能性都相同。
void getknuth(int m,int n){
for(int i=0;i<n;i++)
if(bigrand()%(n-i)<m){
cout<<i<<"\n";
m--;
}
}
另外的方法:1:将产生的随机数放到一个set里,直到set里有m个数,循环停止。
2:数组0-n复制,然后将数组打乱顺序,去前m个