私の教授は顧客が銀行に到着する様子をシミュレートしています。クライアントは、平均 3.5、標準偏差 1.3 の正規分布に従って到着すると言われています。
問題は、なぜこのコードを使用しているのか理解に苦しむことです。彼が提供したコードは、乱数を生成するためにストリーム、平均、および標準を受け取っていると思います
コード
public class Random {
private static double second=0;
static double normal(int stream, double mean, double std){
double v1=0, v2=0, y1, y2, x1, x2, w=2;
if (second!=0 ){
return second;
}
while(w>1){
v1=2*RandomGenerator.rand(stream)-1;
v2=2*RandomGenerator.rand(stream)-1;
w=Math.pow(v1,2)+Math.pow(v2,2);
}
y1=v1*Math.pow((-2*Math.log(w))/w, 0.5);
y2=v2*Math.pow((-2*Math.log(w))/w, 0.5);
x1=mean+y1*std;
x2=mean+y2*std;
second=x2;
return x1;
}
}
私の数学の授業は何年も前のことなので、この正規分布を理解するのは少し難しく、正規分布の計算方法をインターネットで検索した後、与えられたコードに似た式を見つけることができませんでした.
それで、これらは私の質問です。
- 何をし
second
ますか?何かのお守りですか? - このコードは正規分布をどのように使用していますか? わからないようです...