如何实现非均匀概率分布?

Red*_*ddy 2 probability genetic-programming probability-theory genetic-algorithm

我试图在遗传算法中实现非均匀概率分布.

在遗传程序的实施中,我有一个实验,其中有3个结果,每个结果都有不同的概率.比方说,一个结果的可能性是0.85,另一个是0.01,最后一个是0.14?

PS:我最近才知道它被称为概率的非均匀分布.我用Java实现它,任何人都能说出非均匀概率背后的理论.分发以及实现它的任何Java包.

如果您需要有关此问题的更多信息,请随时向我询问!

提前致谢!

Luc*_*cas 9

对于简单的离散分布,您可以编写一个采样器,它将使用累积概率以所需频率返回结果.

Random r = new Random();
double v = r.nextDouble();

if (v <= 0.85) { return 0; }
if (v <= 0.86) { return 1; }
return 2;
Run Code Online (Sandbox Code Playgroud)

这将返回数字0,1和2,概率为0.85,0.01和0.14.

至于关于非均匀概率分布的理论,你可以从这篇关于概率分布的维基百科文章开始; 请特别注意页面底部的可折叠部分.您会发现有许多具有不同属性的非均匀分布(连续和离散).

  • 您从[0.0,1.0)上的均匀分布开始,然后将间隔切成与您的概率成比例的部分. (2认同)