2016-06-23 7 views
0

の間の乱数を生成することができますしかし、どのように私は1とJavascriptを使用して2,147,483,647の間の乱数を生成することができますか?は、どのように私は0と1</p> <pre><code>Math.random(); </code></pre> <p>の間の乱数を生成し、私はランダムについて知っている1〜2,147,483,647

+0

数値の生成は本質的に確定的なので、実際の乱数は実際には不可能です。それにもかかわらず、擬似乱数ジェネレータは、通常、ほぼすべての目的に*十分*適しています。 –

+1

https://en.wikipedia.org/wiki/Pseudorandom_number_generator – SLaks

+3

コインを32回ひっくり返し、JavaScriptを使用して結果のバイナリ表現を10進数に変換してください:) –

答えて

2

Math.random()に制限値を単純に乗算してから切り捨てることができます。 Math.random()は0と1の間の10進数値を返しますので、結果は0と制限値の間になるように、常にあなたの限界値のスケールされた割合を取得します。

結果を整数にしたい場合は、乗算の結果をMath.floor()と呼びます。整数に切り捨てます。

最小値を0ではなく1にして、結果に制限値を含める場合は、結果に1を加えて正確な範囲に入れることができます。

デモの作業
var maxInt = 2147483647; // max 32-bit signed int 

function randomInt() { 
    // generate random value between 1 and maxInt inclusive of both values 
    return Math.floor(Math.random() * maxInt) + 1; 
} 

:あなたはの効果に何かを行うことができます番号を見つけるためにhttps://jsfiddle.net/jfriend00/ntkokacf/

+0

1を追加する必要があります結果を[1、maxInt]の範囲で取得します。 'Math.random()'は0を返します。 –

+1

@NathanVanWhy - 修正が適用されました。 – jfriend00

1

を:

var randomNumber = Math.floor(Math.random() * 2147483647); 

あなたはまた、それを繰り返すように関数を記述することができますし、それができるようになります任意の最小または最大について:

function random(min, max) { 
    return min + Math.floor(Math.random() * (max - min + 1)); 
} 

関数iの説明最小数と最大数を求めています。最小数が何であれ、returnステートメントの後半に追加します。後半ではminとmaxの間に異なる数の可能な数を与える必要があるので、Math.random()にその正確な数を掛けます。これはmaxとminの差に1を加えたものです。問題は、これが小数点を与えることです。したがって、小数点以下を取り除くために底を取っています。

関連する問題

 関連する問題