JavaScriptでの乱数の使い方をサンプルプログラムを交えて紹介します。
ドキュメントはMDNのサイトにあります。
Math.random() - JavaScript | MDN
Math.random() は静的メソッドで、 0 以上 1 未満の範囲で浮動小数点の擬似乱数を返します。その範囲ではほぼ均一な分布で、ユーザーは必要なだけ範囲の拡大をすることができます。実装側で乱数...
JavaScriptの乱数は浮動小数点数です。
MDNのサイトによると
Math.random()関数は、 0 以上 1 未満 (0 は含むが、 1 は含まない) の範囲で浮動小数点の擬似乱数を返します。
となっています。
まずは実際にどういうJavaScriptではどのような乱数が得られるのかコンソールに表示させてみます。
Math.random()の値をそのまま表示させる
random1.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>Math.random()をコンソールに表示してみる</title>
</head>
<body>
<h1>Math.random()をコンソールに表示してみる</h1>
<script>
// 10個の乱数を表示
for(let i=0; i<10; i++){
console.log(Math.random());
}
</script>
</body>
</html>
実行イメージ(乱数の値は変化します)
注)ブラウザ画面上は何も表示されません。開発者ウインドウのConsoleタブ等で確認してください。
Chromeの場合
右クリック > 検証 選択
0.22753785699082663 0.23600857817162058 0.5530183966156632 0.10049255576480554 0.5093659266403312 0.4565910022925508 0.8945789428065647 0.9776469970372537 0.6694781427046763 0.45191599548904016
ご覧のように0以上1未満の乱数となります。
整数として乱数を得たい場合は次のようにします。
乱数で得る事ができる整数の桁数を上げる
乱数が0以上1未満ですので、考え方としては小数点以下第1位に限って言えば、0.0~0.9となります。
もしこの値に10を掛けた場合、0~9の値を得る事が出来ます。
プログラムで確認してみます。
random2.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>乱数で得る事ができる整数の桁数を上げる</title>
</head>
<body>
<h1>乱数で得る事ができる整数の桁数を上げる</h1>
<script>
// 10個の乱数を表示
for(let i=0; i<10; i++){
let r = Math.random() * 10;
console.log(r);
}
</script>
</body>
</html>
実行イメージ(コンソールで確認してください)
8.40250500729054 9.516069847264541 6.8407160583848725 1.489118908592273 2.531200394959894 3.47236900691942 3.2135347017317506 3.4255628151274964 1.4147581241966023 4.487882859065535
大方0~9の範囲となっています。
しかし気になるのは実数形式である点です。JavaScriptは変数の値をあまり気にせず使えてしまう言語ですが、ゲームのキャラクタのXY座標など整数の乱数を得たいときもあります。
そんなときは与えられた数値以下の最大の整数を返してくれるMath.floor()関数を使うといいでしょう。
Math.floor() - JavaScript | MDN
Math.floor() は静的メソッドで、与えられた数値以下の最大の整数を返します。
整数の乱数を得る
random3.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>整数の乱数を得る</title>
</head>
<body>
<h1>整数の乱数を得る</h1>
<script>
// 10個の乱数を表示
for(let i=0; i<10; i++){
let r = Math.floor(Math.random() * 10);
console.log(r);
}
</script>
</body>
</html>
実行イメージ(コンソールで確認してください)
8 9 1 6 9 1 5 0
以上、JavaScriptでの乱数でした。
コメント