use*_*304 4 c++ random integer
如何创建一个不断变化的伪随机整数?这样,我可以输入:
cout << randomInt << endl;
cout << randomInt << endl;
cout << randomInt << endl;
Run Code Online (Sandbox Code Playgroud)
该程序将返回如下内容:
45.7
564.89
1.64
Run Code Online (Sandbox Code Playgroud)
(我不确定这是否有任何意义.)
创建一个表示随机数的类:
class Random {
};
Run Code Online (Sandbox Code Playgroud)
过载operator<<:
std::ostream& operator<<(std::ostream& os, const Random& random) {
return os << generate_random();
}
Run Code Online (Sandbox Code Playgroud)
用于:
int main() {
Random random;
std::cout << random;
std::cout << random;
std::cout << random;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
显然,你需要实施generate_random.
使用新的C++ 11伪随机数生成类:
#include <random>
#include <iostream>
int main()
{
std::random_device rd;
std::mt19937 gen(rd());
std::uniform_int_distribution<> dis(1, 6);
for(int n=0; n<10; ++n)
std::cout << dis(gen) << ' ';
std::cout << '\n';
}
Run Code Online (Sandbox Code Playgroud)
以上模拟了十个骰子卷.
如果您想要浮点值而不是整数,请使用std::uniform_real_distribution而不是std::uniform_int_distribution.