今日、友人が私にアドバイスを求めてきました。JavaScript を使用して指定された範囲で乱数を生成する方法。 Math.random() が乱数を生成するために使用されるメソッドであることは誰もが知っていると思います。ただし、一般的なリファレンス マニュアルでは、この方法を使用して指定された範囲内の乱数を生成する方法については説明されていません。今回はMath.random()の詳細と、それを使って指定範囲内の乱数を生成する方法を紹介します。
w3school の Random() チュートリアル
定義と使用法
random() メソッドは、0 ~ 1 の範囲の乱数を返します。
文法
Math.random()
戻り値
0.0 ~ 1.0 の擬似乱数。
例
この例では、0 から 1 までの乱数を取得します。
<script type="text/javascript"> document.write(Math.random()); </script> // 输出: 0.15246391076246546
指定した範囲内の乱数を生成する方法
w3school チュートリアルを読んだ後は、Math.random() メソッドの基本的な使用法を理解する必要があります。
丸めには parseInt()、Math.floor()、または Math.ceil() を使用します
Math.random() メソッドを使用すると、1 未満の数値が直接生成されることがわかります。
Math.random()*5
得られた結果は 5 未満の乱数です。通常、取得したいのは 0 ~ 5 の整数であるため、期待する整数を取得するには結果を四捨五入する必要があります。 parseInt()、Math.floor()、および Math.ceil() はすべて丸めの役割を果たすことができます。
var randomNum = Math.random()*5; alert(randomNum); // 2.9045290905811183 alert(parseInt(randomNum,10)); // 2 alert(Math.floor(randomNum)); // 2 alert(Math.ceil(randomNum)); // 3
テストされたコードから、parseInt() と Math.floor() は同じ効果を持ち、どちらも整数部分を下方に取り出すことがわかります。したがって、 parseInt(Math.random()*5,10) と Math.floor(Math.random()*5) はどちらも 0 ~ 4 の範囲で生成された乱数であり、 Math.ceil(Math.random()*5 ) は1 ~ 5 の範囲で乱数を生成します。
指定された範囲内の乱数を生成します
したがって、1 から任意の値までの乱数を生成したい場合、式は次のようになります:
// max - 期望的最大值 parseInt(Math.random()*max,10)+1; Math.floor(Math.random()*max)+1; Math.ceil(Math.random()*max);
0 から任意の値までの乱数を生成したい場合、式は次のようになります:
// max - 期望的最大值 parseInt(Math.random()*(max+1),10); Math.floor(Math.random()*(max+1)); 如果你希望生成任意值到任意值的随机数,公式就是这样的: // max - 期望的最大值 // min - 期望的最小值 parseInt(Math.random()*(max-min+1)+min,10); Math.floor(Math.random()*(max-min+1)+min);
この記事を読んで、乱数の数学的ランダムの使い方を理解できましたか?この記事がお役に立てば幸いです。