本文介绍了如何以指定的概率运行部分代码?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个变量cnt
,其值通过if/else
语句进行检查,如下所示:
如果cnt<=2
,则调用func
否则,如果cnt > 2
,则以P=3/(2*cnt)
的概率调用func
.
如何在C ++中实现这种基于概率的代码执行?
I have a variable cnt
, whose value is checked via an if/else
statement as follows:
If cnt<=2
, then call func
Else if cnt > 2
, then call func
with the probability of P=3/(2*cnt)
.
How can I implement this probability-based execution of code in C++?
void func() {
sendMsg();
}
推荐答案
使用类似 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();
}
这篇关于如何以指定的概率运行部分代码?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!