数学的な出力とプログラムが与えるものとの違いを考慮して問題が発生しました。確率計算のJava出力
1/6確率で同じ数字を2回得る確率を計算したいと思います。これは1 in 1/6 * 1/6 = 36
です。しかし、私は42-43の1の間の答えを得る。なにが問題ですか?
int guess = (int) (Math.random() * 6);
int real = (int) (Math.random() * 6);
int countTot = 0;
int countReal = 0;
int countGen = 0;
while (true) {
if (countReal == 2) {
countGen++;
countReal = 0;
if (countGen == 1000000) {
System.out.println("Probability: 1 in " + countTot/countGen);
System.exit(0);
}
}
if (guess == real) {
countReal++;
countTot++;
} else {
countReal = 0;
countTot++;
}
guess = (int) (Math.random() * 6);
real = (int) (Math.random() * 6);
}
は、私はこの1000000
回(countGen
)を行い、結果の平均を取ることを考えてみましょう。前もって感謝します。次のコードを実行
このアルゴリズムは、OPよりはるかに明確です。 –
助けてくれてありがとう、私は今理解している! – Playdowin