乱序数组实现
int Random(int a, int b)
{
int area=0, ret=0;
area=b-a+1;
ret=(int)(rand()*area/(1.0*RAND_MAX)+a);
return ret;
}
void GetRand(int n, int arr[])
{
int i;
int p;
int tmp;
for(i=0; i<=n; i++)
arr[i]=i;
for(i=n; i>0; i--)
{
p=Ramdom(0, i);
tmp=arr[p];
arr[p]=arr[i];
arr[i]=tmp;
}
}
另一种随机数实现方式
void main(void)
{
int i;
unsigned int seedVal;
struct timeb timeBuf;
ftime(&timeBuf);
seedVal=((((unsigned int)timeBuf.time&0xFFFF)+
(unsigned int)timeBuf.millitm)^
(unsigned int)timeBuf.millitm);
srand((unsigned int)seedVal);
for(i=0;i<10;++i)
printf("%6d\n",rand());
}
{
int i;
unsigned int seedVal;
struct timeb timeBuf;
ftime(&timeBuf);
seedVal=((((unsigned int)timeBuf.time&0xFFFF)+
(unsigned int)timeBuf.millitm)^
(unsigned int)timeBuf.millitm);
srand((unsigned int)seedVal);
for(i=0;i<10;++i)
printf("%6d\n",rand());
}