代码:
void getKNum(int k, int n)
{
for (int i = 0; k; ++i)
{
if ((bigrand() % (n - i)) < k)
{
cout << i << " ";
--k;
}
}
cout << endl;
}
其中bigrand()函数产生一个很大的随机数:
int bigrand()
{
srand((unsigned)time(NULL));
return RAND_MAX*rand() + rand();
}
如果需要生成区间[l,u]之间的随机数:
int randint(int l, int u)
{
return l + bigrand() % (u - l + 1);
}