前提・実現したいこと
ユーザーが入力した数字とコンピュータが生成した数字がどれくらいの確率(試行回数1000回)で一致するのかを調べています。
前提
number1number3はユーザーが入力した09の数字(被りあり)
コンピューターは0~9の数字を3つ(被りあり)生成
3つの数字が順番まで一致⇨straight
3つの数字が順不同で一致⇨box
1つ一致、2つ一致、3つとも不一致⇨lose
実際に作ったものを動かしてみた(1,2,3と入力)のですが、確率が上から順に
0.2%
0.5%
99.3%
くらいの範囲で収まります。
知りたいこと
この数字は正しいのでしょうか?
boxの確率はもうちょっと高くなるような気がするのですが、これが正しいのか間違っているのかをどうやって調べればいいのかがわかりません。
正しいのか、間違っていたらどこがおかしいのか、合っているかを調べる方法を教えていただきたいです。
該当のソースコード
var straight = document.getElementById('straight'); var box = document.getElementById('box'); var lose = document.getElementById('lose'); var traials_num = 1000; var win_count = {straight: 0, box: 0, lose: 0}; for(var i = 0; i < traials_num; i++){ var random1 = Math.floor( Math.random() * 10); var random2 = Math.floor( Math.random() * 10); var random3 = Math.floor( Math.random() * 10); if(number1 == random1 && number2 == random2 && number3 == random3){ win_count.straight++; }else if(number1 == random1 && number2 == random3 && number3 == random2 || number1 == random3 && number2 == random2 && number3 == random1 || number1 == random2 && number2 == random1 && number3 == random3 || number1 == random2 && number2 == random3 && number3 == random1 || number1 == random3 && number2 == random1 && number3 == random2 ){ win_count.box++; }else{ win_count.lose++; } } straight.innerHTML = '並び順まで一致:' + (win_count.straight / traials_num * 100).toFixed(2) + '%'; box.innerHTML = '順不同で一致:' + (win_count.box / traials_num * 100).toFixed(2) + '%'; lose.innerHTML = 'ハズレ:' + (win_count.lose / traials_num * 100).toFixed(2) +'%';
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2021/04/29 11:27
2021/04/29 13:42
退会済みユーザー
2021/04/29 14:06