如何将这个概念表述为一个方程式

时间:2012-06-19 21:57:23

标签: math random equation

我有这个(伪代码):

var a = Math.random(); // returns random number from 0 to 1

enter image description here

我希望更有可能选择较低的数字,就像图片所描述的那样。等式(代码)应该如何?

2 个答案:

答案 0 :(得分:4)

最简单的方法是进行拒绝抽样。

基本上你模拟一个二维变量(x,y)=(Math.random(),Math.random())。它是平方[0,1] [0,1]中的一个点。如果变量(x,y)在您绘制的三角形中,则取x。

x将具有您正在寻找的发行版。

伪代码:

x = Math.random();
y = Math.random();

if x+y < 1:
   return x;

你实际上可以通过仅绘制一个随机变量(通过计算和反转累积分布函数)来逃避它,但在这种情况下这要复杂得多。

答案 1 :(得分:1)

反向累积分布函数给出

1 - Math.sqrt(1 - Math.random()),

所以

 1 - Math.sqrt(Math.random())

会为您提供所需的发布。

请注意,0处的概率密度必须为2,以便曲线下面积的概率为1。