标签:
均匀洗牌即可
方法1:
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
static int num = 54;//num为纸牌数目
//随机数发生器,产生[n,m)之间的随机数
int getRandNum(int n,int m)
{
if(n==m)
{
return n;
}
else if(n>m)
{
return -1;
}
time_t time1;
srand(( unsigned int)time(&time1));
return rand() % (m - n + 1) + n ;
}
//方法1
void xipai(int i,int j)
{
if(num==0)
{
return;
}
int temp = getRandNum(i,j);
if(temp<0)
{
return;
}
num--;
printf("%d\t",temp);
xipai(i,temp-1);
xipai(temp+1,j);
}
int main()
{
xipai(1,num);
return 0;
}
方法2:
for(int i = 0; i < N; i++){
int j = random(i, n-1);
swap(card[i], card[j]);
}
标签:
原文地址:http://www.cnblogs.com/ZhangJinkun/p/4534326.html