JavaScript Math.random()メソッドの説明

ランダムメソッド

JavaScriptMath.random()メソッドは、乱数を生成するための優れた組み込みメソッドです。ときにMath.random()実行され、それはどこでも0と1の間に0が含まれていることができ、1が除外される乱数を返します。

0から1までのランダムな浮動小数点数を生成する

このMath.random()メソッドは、0以上1未満(ただし決して等しくない)の浮動小数点(10進数)数を返します0 <= x < 1。つまり、。例えば:

console.log(Math.random()); // 0.7069207248635578 console.log(Math.random()); // 0.765046694794209 console.log(Math.random()); // 0.14069121642698246

(もちろん、返される数値は毎回異なります。これは、以下のすべての例で想定されています。パスごとに異なる結果が発生します。)

より広い範囲の間で乱数を取得するには、の結果にMath.random()数値を掛けます。

0から指定された最大値までのランダムな浮動小数点数を生成する

通常、0から1までの乱数は必要ありません。より大きな数、さらには整数が必要です。

たとえば、0から10までのランダムな浮動小数点数が必要な場合は、次を使用できます。

var x = Math.random()*10; console.log(x); // 4.133793901445541

範囲内でランダムな浮動小数点数を生成する

2つの特定の数値の間にあるランダムな浮動小数点数が必要な場合は、次のようにすることができます。

var min = 83.1; var max = 193.36; var x = Math.random()*(max - min)+min; console.log(x); // 126.94014012699063

0から最大までのランダムな整数を生成する

多くの場合、整数が必要です。これを行うには、Mathオブジェクトから他のいくつかのメソッドMath.floor()(最も近い整数に切り捨て)およびMath.ceil()(最も近い整数に切り上げる)を使用する必要があります。

たとえば、10個の要素の配列からランダムに選択する必要がある場合は、0から9までの乱数が必要になります(配列のインデックスはゼロであることに注意してください)。

var x = Math.floor(Math.random()*10); console.log(x); // 7

Math.random()正確に1Math.random()*10が返されることはないため、正確に10が返されることはありません。つまり、切り捨てた後、結果は常に9以下になります。)

1から最大までのランダムな整数を生成する

最小数が1の乱数が必要な場合(たとえば、1月のランダムな日を選択する場合)、このMath.ceil()方法を使用できます。

var x = Math.ceil(Math.random()*31); console.log(x); // 23

別の方法は、前の関数を使用して(を使用してMath.floor())、それに1を追加することでした。

var x = Math.floor(Math.random()*31)+1; console.log(x); // 17

範囲内でランダムな整数を生成する

最後に、2つの特定の整数の間にランダムな整数が必要になる場合があります。たとえば、ラッフルチケットを選択しようとしていて、最小番号と最大番号の番号がわかっている場合:

var min = 1718; var max = 3429; var x = Math.floor(Math.random()*(max-min+1)+min); console.log(x); //2509

Math.random()はどのくらいランダムですか?

によって返される数値はMath.random()疑似乱数であることが指摘される場合があります。これは、すべてのスケールおよびすべてのサイズのデータ​​セットでランダム性を示す真の乱数を生成できるコンピューターがないためです。ただし、によって生成される疑似乱数Math.random()は、通常、作成する可能性のあるほぼすべてのプログラムのニーズに十分です。真にランダムではないことは、天文学的に大きな数のセットで、またはまれに正確な小数が必要な場合にのみ明らかになります。