如何生成1到2,147,483,647之间的随机数

时间:2016-06-23 02:57:57

标签: javascript

我知道随机生成0到1之间的随机数。

Math.random();

但是如何使用Javascript生成介于1和2,147,483,647之间的随机数?

2 个答案:

答案 0 :(得分:2)

您可以简单地将Math.random()乘以限制值,然后向下舍入。由于Math.random()返回0到1之间的小数值,因此您将始终获得一些比例限制值,因此您的结果将介于0和您的限制值之间。

如果希望结果为整数,则可以使用乘法结果Math.floor()向下舍入为整数。

由于您还希望最低值为1而不是0,并且您希望结果包含限制值,因此您可以将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/

答案 1 :(得分:1)

为了找到一个数字,你可以做一些事情:

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

您还可以编写一个函数来重复该操作,并允许任何最小值或最大值:

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

该功能的解释是它要求最小和最大数量。无论最小数量是多少,我们都会在return语句的后半部分添加。下半部分需要给出最小值和最大值之间不同可能数字的数量,因此我们将Math.random()乘以该确切数字,即max和min加1之间的差值。问题在于这给出了一个小数,因此我们采用它来取消小数。