【週刊ドットインストール】 考える力を養うための新クラス『データで学ぶアルゴリズム』を256timesでリリース!
getRandomInteger(5) とすると 0 から 5 までのランダムな整数値を返すとします。
getRandomInteger(5)
return Math.floor(Math.random() * (0 + 1) ; の時 偶然以下のように生成されたとします。
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); の時偶然以下のように生成されたとします。
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); の時偶然以下のように生成されたとします。
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); の時偶然以下のように生成されたとします。
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); の時偶然以下のように生成されたとします。
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); の時偶然以下のように生成されたとします。
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 とはかけ離れた数値になるように思うのですが、 この考え方のどこに間違いがあるのでしょうか。
ドットインストールは、3分動画でマスターできるプログラミング学習サービスです。
3分で気軽に学習でき、スマートフォンからも視聴可能です。ホームページやWebサービスの制作を通して、実践的にプログラミングを学べます。
他にも、ゲーム制作やデータ分析・機械学習・AIに使われる言語まで幅広くカバー。学びたい分野のレッスンがきっと見つかります。
この回答を見るにはプレミアムプランへの登録が必要です
getRandomInteger(5)とすると 0 から 5 までのランダムな整数値を返すとします。return Math.floor(Math.random() * (0 + 1) ;の時偶然以下のように生成されたとします。
返り値はすべて 0。
Math.random() * (1 + 1);の時偶然以下のように生成されたとします。Math.random() * (2 + 1);の時偶然以下のように生成されたとします。Math.random() * (3 + 1);の時偶然以下のように生成されたとします。Math.random() * (4 + 1);の時偶然以下のように生成されたとします。Math.random() * (5 + 1);の時偶然以下のように生成されたとします。返り値 0 は 22 個と圧倒的に 0 の割合が多くなります。
それに比べて返り値 5 は 2 個であり、
サイコロの目の出る確率 1/6 とはかけ離れた数値になるように思うのですが、
この考え方のどこに間違いがあるのでしょうか。