0

私はこれを持っています(疑似コード):

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

ここに画像の説明を入力

写真が示すように、より低い数字を選択する可能性を高めたいと思います。方程式 (コード) はどのように見えるべきですか?

4

2 に答える 2

4

ここで最も簡単なのは、拒否サンプリングを続行することです。

基本的に、2 次元変数 (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 つの確率変数のみを描画することで、実際にはそれを回避できますが、この場合ははるかに複雑になります。

于 2012-06-19T22:09:08.117 に答える
1

逆累積分布関数は、

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

それで

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

必要なディストリビューションを提供します。

曲線の下の領域が 1 の合計確率を与えるように、0 での確率密度は 2 でなければならないことに注意してください。

于 2012-06-20T09:08:44.820 に答える