void genrandomnum(int k, int n)
{
cout << "algo1: ";
int arr[100];
for(int i=0;i < 100;i++)
arr[i] = 0;
int i=0;
while(i!=k)
{
int rnd = (rand()%n) + 1; //random num in 1,n
if(arr[rnd] == 0)
{
arr[rnd] = -1;
arr[i] = rnd;
i++;
}
else
{
if(arr[rnd] > 0)
{
arr[rnd] = -arr[rnd]; //mark
arr[i] = rnd;
i++;
}
}
}
for(int i=0;i < k;i++)
if(arr[i]<0)
arr[i]=-arr[i];
for(int i=0;i < k;i++)
cout << " " << arr[i];
cout << endl << endl;
}
//Knuth's Algo
void genrandomnum1(int k, int n)
{
cout << "algo2: " ;
for(int i=0; i < n; i++)
{
if((rand()%(n-i)) < k)
{
cout << i << " ";
k--;
}
}
cout << endl << endl;
}
No comments:
Post a Comment