6

Math.floor(Math.random()*10)+1私が理解していることから、1〜10の乱数を選択することになっている場合。

ただし、+1を任意の数値に変更すると1、同じ結果が得られます。どうしてこれなの?+1正確にはどういう意味ですか?

4

4 に答える 4

9

乱数ジェネレーターは、0.0 <= n < 1.0 の範囲の値を生成します。1 から何かの間の数値が必要な場合は、+1オフセットを適用する必要があります。

通常、次を使用できます。

Math.floor(Math.random() * N) + M

これにより、M と M + N - 1 の間の値が生成されます。

デモフィドル

于 2012-06-27T14:11:13.810 に答える
3

整数は 1 から 10 の間です

  • Math.random()は、0 から 1 の間の数値を生成します (小数点以下の桁数が多い)。

etc: math.random() [randomly return : 0.19157057767733932]
(この数値にはまだ多くの小数点以下の桁数があります)

ランダムな整数を取得するには、生成された乱数に 10 を掛ける必要があります。

など
math.random()*10 =[ランダムに返す: 2.9757621488533914]

  • 数値には依然として多くの小数点以下の桁があるため、floor() メソッドを使用して数値を切り捨て/最も近い整数にします。これにより、0 から 9 の間の ua 値が得られます。次に、u に 1 を加算して 1 から 10 の間の数値にすることができます。

etc:
math.floor(0.6) [0 を返す]
math.floor(0.6)+ 1 [1 を返す]

于 2016-02-07T19:02:55.393 に答える
3

Math.random()0 から 1 の間の乱数を生成します。

したがってMath.random()*10、0 ~ 10 の乱数と(Math.random()*10)+11 ~ 11 の乱数を生成します。

Math.floor()この数値の小数を削除し、0 から 10 までの整数にします。

ここでロジックの順次進行を見ることができます

于 2012-06-27T14:10:07.480 に答える
0

基本:

(random() >= 0)いつもtrue

(random() < 1)いつもtrue

(Math.floor(random()) == 0)いつもtrue

最大:

(Math.floor(random() * 10) >= 0)いつもtrue

(Math.floor(random() * 10) < 10)いつもtrue

最小:

(Math.floor(random() * 10) + 1 >= 1)いつもtrue

(Math.floor(random() * 10) + 1 < 11)いつもtrue

最大ラウンド:

(Math.round(random() * 10, 0) >= 0)いつもtrue

(Math.round(random() * 10, 0) <= 10)いつもtrue

于 2013-10-17T14:35:03.873 に答える