有一副54张的扑克牌,那么它有54!种排列算法。
代码如下:
void shuffle(int *a, int n)
{
for(int i = 0; i < n; ++i)
swap(a[i], a[randint(i,n-1)];
}
randint函数的实现:
int randint(int i, int j)
{
if(i > j)
swap(i, j);
return i+rand() % (j-i+1);
}
有一副54张的扑克牌,那么它有54!种排列算法。
代码如下:
void shuffle(int *a, int n)
{
for(int i = 0; i < n; ++i)
swap(a[i], a[randint(i,n-1)];
}
randint函数的实现:
int randint(int i, int j)
{
if(i > j)
swap(i, j);
return i+rand() % (j-i+1);
}