我的事件应该有0.5%的发生概率(不常见)。
如何根据此概率生成随机数?
这样的事情是否足够,我不相信,因为srand返回一个整数...
double rate = 0.05;
if((srand() % 100) < rate)
{
std::cout << "Event Occurred" << endl;
}
答案 0 :(得分:4)
std::mt19937 rng(std::random_device{}());
std::bernoulli_distribution d(0.005);
bool b = d(rng); // true 0.5% of the time; otherwise false