问题描述:
假设需要生成前N个自然数的一个随机置换。例如,{4,3,1,5,2}和{3,1,4,2,5}就是合法的置换,但{5,4,1,2,1}却不是,因为数1出现两次而数3却没有。这个程序常常用于模拟一些算法。我们假设存在一个随机数生成器RandInt(i,j),它以相同的概率生成i和j之间的一个整数。
int RandInt(int i, int j) //srand()放在主函数中了
{
if(i==0)
return rand()%(j+1);
else
return rand()%(j-i+1) + i;
}