使用方法: 产生一定范围随机数的通用表示公式
- 要取得[a,b)的随机整数,使用(rand() % (b-a))+ a;
- 要取得[a,b]的随机整数,使用(rand() % (b-a+1))+ a;
- 要取得(a,b]的随机整数,使用(rand() % (b-a))+ a + 1;
- 通用公式:a + rand() % n;其中的a是起始值,n是整数的范围。
- 要取得a到b之间的随机整数,另一种表示:a + (int)b * rand() / (RAND_MAX + 1)。
- 要取得0~1之间的浮点数,可以使用rand() / double(RAND_MAX)。
#include<iostream>
#include<ctime>
#include<random>
using namespace std;
void knuth(int n, int m)
{
srand((unsigned int)time(NULL));
for (int i = 0; i < n; i++) {
if (rand() % (n - i) < m ) {
cout << i << endl;
--m;
}
}
}
int main()
{
knuth(1000, 10);
return 0;
}
参考:
https://www.cnblogs.com/afarmer/archive/2011/05/01/2033715.html