【发布时间】:2016-01-22 05:24:00
【问题描述】:
我有一个变量cnt,其值通过if/else 语句检查如下:
如果cnt<=2,则拨打func
否则如果cnt > 2,则调用func,概率为P=3/(2*cnt)。
如何在 C++ 中实现这种基于概率的代码执行?
void func() {
sendMsg();
}
【问题讨论】:
-
你生成一个介于 0 和 1 之间的随机 double
D,如果P<D则执行代码。关于生成随机数,请参阅<random>标头和互联网中的许多示例。 -
您可以使用 rand() 函数生成 1 到 0 之间的随机数,并检查它是否满足运行该函数的条件。
-
PS:请勿使用
rand()。它不是真的随机或接近它。它只是易于使用,但你得到的值很糟糕。 -
你不知道如何生成随机数吗?
-
@LưuVĩnhPhúc 我确实知道如何生成随机数。我不知道的是如何使用随机数来跟踪概率。