なぜ確率が 1/6 になるのか分かりません

小数点以下の精度を上げて考えてみるといいでしょう。
2024年1月6日
ユーザー

getRandomInteger(5) とすると 0 から 5 までのランダムな整数値を返すとします。

return Math.floor(Math.random() * (0 + 1) ; の時
偶然以下のように生成されたとします。

0 : 0.1 * 1  n = 0
1 : 0.2 * 1  n = 0
2 : 0.3 * 1  n = 0
3 : 0.4 * 1  n = 0
4 : 0.5 * 1  n = 0
5 : 0.6 * 1  n = 0
6 : 0:7 * 1  n = 0
7 : 0.8 * 1  n = 0
8 : 0.9 * 1  n = 0
9 : 0.9 * 1  n = 0

返り値はすべて 0。

Math.random() * (1 + 1); の時偶然以下のように生成されたとします。

0 : 0.1 * 2  n = 0
1 : 0.2 * 2  n = 0
2 : 0.3 * 2  n = 0
3 : 0.4 * 2  n = 0
4 : 0.5 * 2  n = 1
5 : 0.6 * 2  n = 1
6 : 0:7 * 2  n = 1
7 : 0.8 * 2  n = 1
8 : 0.9 * 2  n = 1
9 : 0.9 * 2  n = 1

Math.random() * (2 + 1); の時偶然以下のように生成されたとします。

0 : 0.1 * 3  n = 0
1 : 0.2 * 3  n = 0
2 : 0.3 * 3  n = 0
3 : 0.4 * 3  n = 1
4 : 0.5 * 3  n = 1
5 : 0.6 * 3  n = 1
6 : 0:7 * 3  n = 2
7 : 0.8 * 3  n = 2
8 : 0.9 * 3  n = 2
9 : 0.9 * 3  n = 2

Math.random() * (3 + 1); の時偶然以下のように生成されたとします。

0 : 0.1 * 4  n = 0
1 : 0.2 * 4  n = 0
2 : 0.3 * 4  n = 0
3 : 0.4 * 4  n = 1
4 : 0.5 * 4  n = 1
5 : 0.6 * 4  n = 1
6 : 0:7 * 4  n = 2
7 : 0.8 * 4  n = 2
8 : 0.9 * 4  n = 2
9 : 0.9 * 4  n = 2

Math.random() * (4 + 1); の時偶然以下のように生成されたとします。

0 : 0.1 * 5  n = 0
1 : 0.2 * 5  n = 1
2 : 0.3 * 5  n = 1
3 : 0.4 * 5  n = 2
4 : 0.5 * 5  n = 2
5 : 0.6 * 5  n = 3
6 : 0:7 * 5  n = 3
7 : 0.8 * 5  n = 4
8 : 0.9 * 5  n = 4
9 : 0.9 * 5  n = 4

Math.random() * (5 + 1); の時偶然以下のように生成されたとします。

0 : 0.1 * 6  n = 0
1 : 0.2 * 6  n = 1
2 : 0.3 * 6  n = 1
3 : 0.4 * 6  n = 2
4 : 0.5 * 6  n = 3
5 : 0.6 * 6  n = 3
6 : 0:7 * 6  n = 4
7 : 0.8 * 6  n = 4
8 : 0.9 * 6  n = 5
9 : 0.9 * 6  n = 5

返り値 0 は 22 個と圧倒的に 0 の割合が多くなります。
それに比べて返り値 5 は 2 個であり、
サイコロの目の出る確率 1/6 とはかけ離れた数値になるように思うのですが、
この考え方のどこに間違いがあるのでしょうか。

この回答を見るにはプレミアムプランへの登録が必要です

プレミアムプランとは?

このレッスンの質問と回答(4)