我发现这个公式,并认为它是一个很好的用于获取0到1之间的随机生成的数字。但是,我需要将随机生成的数字与其他数字进行比较。如何在比较语句中存储以供使用。
double r() {
random_device rd;
mt19937 gen(rd());
uniform_real_distribution<> dis(0, 1);
cout << "dis gen is " << dis(gen) << endl;
// cout << '\n';
return 0;
}
答案 0 :(得分:0)
您只需将dis(gen)
返回的值存储在变量中:
auto value = dis(gen);
dis(gen)
根据分发gen
生成包含生成器dis
的值。在这种情况下,它会返回一个均匀分布在0和1之间的随机实数。
如果您想明确返回的类型(而不是使用auto
自动推断类型):
decltype(dis)::result_type value = dis(gen);
或完整:
uniform_real_distribution<>::result_type value = dis(gen);
这只是意味着如果更改分配,则需要更新两行。
如果你想要超显式并且给出result_type
将会是的类型(在这种情况下是默认类型double
):
double value = dis(gen);