random関数

広告

random関数は乱数を返します。

メソッドが呼ばれるたびに乱数を計算して返します。

パラメータ:
  無し
戻り値:
  0.0以上1.0未満の乱数。

Math.random()関数が呼び出されると0.0以上1.0未満までのランダムな浮動小数点を得ることができます。

次の例を見て下さい。

for (var i = 0 ; i < 10 ; i++){
alert(Math.random());
}

実行すると次のように10個のランダムな数値を取得できます。

0.9170651967998714
0.6403745004364014
0.2150578253608576
0.23166622356154576
0.14398386312359412
0.012149290784819744
0.4642188750172451
0.11122829973967874
0.4315236726564281
0.08777938225044302

乱数といっても擬似乱数なのですが、シードなどはあまり意識することなく利用する事ができます。

得ることができる数値は浮動小数点数ですので、もし任意の範囲の整数の乱数を取得したい場合は次のように記述します。

for (var i = 0 ; i < 10 ; i++){
  print(Math.floor(Math.random () * 10) + 1);
}

上記は1から10までの整数の乱数を取得する場合です。Math.floor関数は端数を切り捨てる関数です。(詳細は「floor関数」を参照して下さい)。実行すると次のように10個のランダムな数値を取得できます。

8
7
4
10
4
1
10
3
2
3
サンプルコード

では簡単なサンプルで試してみます。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<meta http-equiv="Content-Script-Type" content="text/javascript">
<title>JavaScript テスト</title>
</head>
<body>

<script type="text/javascript" src="./js/script8_1.js">
</script>

</body>
</html>
function print(str){
  document.write(str + "<br />");
}

document.write("<p>");

for (var i = 0 ; i < 5 ; i++){
  print(Math.random());
}

document.write("</p>");

var count = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0];

for (var i = 0 ; i < 8000 ; i++){
  var num = Math.floor(Math.random () * 10) ;
  count[num] += 1;
}

document.write("<p>");

for (var i = 0 ; i < 10 ; i++){
  print(i + " : " + count[i] + "回");
}

document.write("</p>");

上記を実際にブラウザ見てみると次のように表示されます。

p8-1

今回のサンプルの後半では、0から9の整数の乱数を8000回取得し、実際にそれぞれの値が何回出たのかを集計して出力しています。

( Written by Tatsuo Ikura )