乱数は本当に乱数なのか?
JavaScriptの書き方がわかったところで、学習がてら乱数は本当に乱数が取得できるのかを検証。
以下コード。
<html> <head> <script language="JavaScript"> <!-- function make_tr(tbody, td_rst) { var tr = document.createElement('tr'); for(var i=0; i<3; i++) { var td = document.createElement('td'); td.innerHTML = td_rst[i]; tr.appendChild(td); } tbody.appendChild(tr); } function load() { var table = document.createElement('table'); var tbody = document.createElement('tbody'); var i, randnum; var num = 10000; /* ヘッダー情報の作成 */ var td_head = Array(); td_head[0] = "数字"; td_head[1] = "表示回数"; td_head[2] = "確率(%)"; make_tr(tbody, td_head); /* 乱数統計の取得 */ var rst = Array(); // 初期化 for(i=0; i<10; i++) { rst[i] = 0; } // 統計の取得 for(i=0; i<num; i++) { randnum = Math.floor(Math.random() * 10); rst[randnum]++; } /* 表示 */ var td_body = Array(); for(i=0; i<10; i++) { td_body[0] = i td_body[1] = rst[i]; td_body[2] = Math.floor(rst[i] / num * 100); make_tr(tbody, td_body); } table.appendChild(tbody); document.getElementById("result").appendChild(table); } // --> </script> </head> <body onload="load()"> <div id="result"></div> </body> </html>
んで、以下が出力結果。
数字 | 表示回数 | 確率(%) |
0 | 1011 | 10 |
1 | 982 | 9 |
2 | 1065 | 10 |
3 | 941 | 9 |
4 | 1021 | 10 |
5 | 990 | 9 |
6 | 989 | 9 |
7 | 1016 | 10 |
8 | 992 | 9 |
9 | 993 | 9 |
乱数はやっぱり乱数みたい。もうちょっと改良しようかなぁ。