void shuffle(int *A,int n)
{
int i=n-1;
while(i!=0)
{
int index=Rand()%i;
Swap(A[index],A[i]);
i--;
}
}
1.每个数都不在自己原来的位置了。
2.不会把结果限制在一个小区域内。
3.生成任意满足条件的排列都是等概率的。
参考:http://blog.csdn.net/wu2436428/article/details/6445111
{
int i=n-1;
while(i!=0)
{
int index=Rand()%i;
Swap(A[index],A[i]);
i--;
}
}
1.每个数都不在自己原来的位置了。
2.不会把结果限制在一个小区域内。
3.生成任意满足条件的排列都是等概率的。
参考:http://blog.csdn.net/wu2436428/article/details/6445111