C++实现无重复随机数的高效算法
2015-04-16来源:易贤网

函数permutation用于产生从0到n-1的无重复随机数,并将结果保存到数组z_array中。程序中使用buffer作为已使用随机数的记录数组,假定下一次产生一个随机数的(产生随机数的范围在不断缩小:rand()%(n-i))为z,遍历buffer,统计不大于该随机数且已使用过的随机数的个数,记为k,将z+k添加进z_array中,作为产生的下一个随机数,如此重复。这样便生成了从0到n-1的无重复的随机数。

void permutation(int n, int *z_array)

{

int i, j, k, z;

int buffer[N];

/* 初始化数组 */

for (i=0; i

更多信息请查看IT技术专栏

推荐信息