9

numパラメーターが52の場合、可能な戻り値はいくつありますか?52ですか53ですか?これを正しく理解していれば、Math.randomは0から1までのランダムな値を使用します。その場合、0が可能な戻り値であり、52も同様です。これにより、53の可能な戻り値が得られます。これは正しいです?私が尋ねる理由は、私が学んでいる本がこのコードをトランプのデッキに使用しているからです。numは51に等しいのだろうか?

ありがとう ...

function getRandom(num) {
    var my_num = Math.floor(Math.random * num);
    return my_num;
};
4

3 に答える 3

12
Math.floor(Math.random() * num) // note random() is a function.

これにより、0(0を含む)からnum(を含まない)までのすべての整数が返されますnum

Math.random0(包括的)から1(排他的)までの数値を返します。結果にXを掛けると、0(包括的)とX(排他的)の間で得られます。Xを加算または減算すると、範囲が+-Xだけシフトします。

MDNの便利な関数は次のとおりです。

// Returns a random number between 0 (inclusive) and 1 (exclusive)
function getRandom() {
  return Math.random();
}

// Returns a random number between min and max
function getRandomArbitrary(min, max) {
  return Math.random() * (max - min) + min;
}

// Returns a random integer between min and max
// Using Math.round() will give you a non-uniform distribution!
function getRandomInt(min, max) {
  return Math.floor(Math.random() * (max - min + 1)) + min;
}
于 2012-10-14T18:27:15.057 に答える
3

(を含まないMath.random)の間の実数を返すので、結果を乗算すると、の間の実数が返されます。[0,1)1[0, 52)

結果をフローリングしているので、返される最大数は51であり、52明確な値があります(カウント0)。

于 2012-10-14T18:22:51.743 に答える
2

Math.randomの値は0から1(排他的)まで変化するため。したがって、getRandomで52を渡すと、戻り値は0から52(排他的)まで変化します。したがって、getRandomは52個の値のみを返すことができます。Math.floorを使用しているため。返すことができる最大値は51です。

于 2012-10-14T18:19:55.597 に答える