C++的随机数函数为rand(), 可以获得一个非负整数的随机数。 要让随机数限定在一个范围,可以采用模除加加法的方式。 要产生随机数r, 其范围为 m<=r<=n,可以使用如下公式: rand()%(n-m+1)+m 其原理为,对于任意数, 0<=rand()%(n-m+1)<=n-m 于是 0+m<=rand()%(n-m+1)+m<=n-m+m 即 m<=rand()%(n-m+1)+m<=n
但是rand不是真正的随机,可以调用C++库来实现
#include <iostream> #include <random> int main() { std::random_device rd; for(int n=0; n<20000; ++n) std::cout << rd() << std::endl; return 0; }