如何根据一定的概率得到一个值

Man*_*nas 1 c++ probability probability-theory

我有一些函数可以生成 double、float、short、long 随机值。我有另一个函数,我将数据类型传递给它,它应该返回一个随机值。现在我需要在该函数中根据传递的数据类型选择返回值。例如,如果我通过浮动,我需要:

回报为浮动的概率为 70%,回报为双倍、空头或多头的概率各为 10%。我可以调用另一个函数来生成相应的随机值,但是我如何适应最终返回的概率权重?我的代码是 C++。

一些指针表示赞赏。

谢谢。

mmo*_*nem 5

C++ 随机数具有均匀分布。如果您需要另一个分布的随机变量,您需要将其数学公式基于均匀分布。

如果您没有随机变量的数学公式,您可以执行以下操作:

int x = rand() % 10;
if (x < 7)
{
 // return float
}
else (if x == 7)
{
 // return double
}
else (if x == 8)
{
 // return short
}
else (if x == 9)
{
 // return long
}
Run Code Online (Sandbox Code Playgroud)