//////////////////////////////////////////////////////////////////
// name:一個取n個不同的隨機數的演算法
// author:zhaoyongpeng
// date:2006.5.26
///////////////////////////////////////////////////////////////////
#include<iostream.h>
#include<stdlib.h>
#include<time.h>
int main()
{
int a[100]={0};
int i=0,length=0,value = 0;
cout<<" 請輸入一個上限整數數值: ";
cin>>value;
cout<<"請輸入你想得到的互不相同的整數值(應該小於"<<value<<"):";
cin>>length;
bool flag=true;
int temp=0;
/* Seed the random-number generator with current time so that
* the numbers will be different every time we run.
*/
srand( (unsigned)time( NULL ) );
for(i=0;i<length;i++)
{
temp=rand()%value;
if(i!=0)
{
flag=true;
while(flag)
{
flag=false;
for(int j=0;j<i;j++)
{
if(a[j]== temp)
{
flag=true;
temp=rand()%value;
break;
}
}
}
a[i]=temp;
}
else
{
a[0]=temp;
}
}
for(i=0;i<length;i++)
{
cout<<a[i]<<"/t";
}
cout<<endl;
return 0;
}