我有一个变量cnt
,其值通过if/else
如下语句检查:
如果cnt<=2
,则调用func
Else if cnt > 2
,然后调用func
概率为P=3/(2*cnt)
.
如何在C++中实现基于概率的代码执行?
void func() {
sendMsg();
}
Run Code Online (Sandbox Code Playgroud)
使用类似的东西std::uniform_real
:
#include <random>
std::random_device rd;
std::mt19937 gen(rd());
std::uniform_real_distribution<> dis(0, 1);
void func() {
// Probability 0.3
if(dis(gen) < 0.3)
sendMsg();
}
Run Code Online (Sandbox Code Playgroud)