在C++中,如何基于双值概率生成随机数

In C++, How Can I Generate A Random Number Based Off Of A Double Value Probability?

本文关键字:概率 随机数 何基于 C++      更新时间:2023-10-16

我有一个事件发生的概率应该为0.5%(不经常发生)。

如何根据这个概率生成一个随机数?

如果srand返回一个整数,这样的东西就足够了吗。。。

double rate = 0.05;
if((srand() % 100) < rate)
{
    std::cout << "Event Occurred" << endl;
}
std::mt19937 rng(std::random_device{}());
std::bernoulli_distribution d(0.005);
bool b = d(rng); // true 0.5% of the time; otherwise false