破解
782 2023-04-03 04:07:57
void mRandn(int n, int m) { for (int i = 0; i < n && m > 0; ++i) { if (rand() % (n - i) < m) { cout << i << ends; --m; } }}
选取数目满后,可以提前终止。
有时候不知道n,如何实现?
auto sample(vector<int> N, int m) { vector<int> v; int i = 0; for (auto x : N) { ++i; if (i <= m) { v.push_back(x); } else { int d = rand() % i; if (d < m) { v[d] = x; } } } return v;}