随机数产生

输入包括两个整数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个

posted @ 2010-03-24 03:23  macula7  阅读(142)  评论(0编辑  收藏  举报