C++产生固定范围内的固定数量的随机数

时间:2024-01-09 15:35:20
 #include<iostream>
#include<ctime>
#include<random>
using namespace std;
void knuth(int n, int m)
{
srand((unsigned int)time(NULL));
for (int i = ; i < n; i++) {
/* 注意到在整个for循环中,随机数种子已经固定,rand()
的值是不变的
这里n必须减去i,否则很有可能产生的随机数量小于n
*/
if (rand() % (n - i) < m ) {
cout << i << endl;
--m;
}
}
} int main()
{
knuth(, );
return ;
}

上述程序是假设m远远大于n!