📜  JavaScript数学random()

📅  最后修改于: 2020-09-27 06:35:44             🧑  作者: Mango

JavaScript Math.random() 函数返回介于0(含)和1(不含)之间的浮点伪随机数。

Math.random() 函数的语法为:

Math.random()

使用Math类名称调用random ,它是一种静态方法。


Math.random()参数

Math.random() 函数不接受任何参数。


从Math.random()返回值
  • 返回介于0 (含)和1 (不含)之间的浮点伪随机数。

示例1:使用Math.random()
// generating random number in range [0, 1)
var random_num = Math.random();
console.log(random_num);

输出

0.5856407221615856

注意:由于Math.random()会生成一个随机数,因此在上面的程序中可能会得到不同的输出。


示例2:生成两个数字之间的随机数
// generating random number in range [x, y)
function getRandomNum(min, max) {
  return Math.random() * (max - min) + min;
}

// random number in range 5(inclusive) and 10(exclusive)
var random_num = getRandomNum(5, 10);
console.log(random_num);

// random number in range 0(inclusive) and 100(exclusive)
var random_num = getRandomNum(0, 100);
console.log(random_num);

输出

6.670210050278422
70.46845725092274

在这里,我们可以看到Math.random()产生的随机值是由数字差的一个因数缩放的。然后将其添加到较小的数字,以产生给定范围之间的随机数。


示例3:生成两个数字之间的随机整数
// Generating random integer in range [x, y)
// The maximum is exclusive and the minimum is inclusive
function getRandomInt(min, max) {
  min = Math.ceil(min);
  max = Math.floor(max);
  return Math.floor(Math.random() * (max - min)) + min;
}

// random int in range 5(inclusive) and 10(exclusive)
var random_num = getRandomInt(5, 10);
console.log(random_num);

// random int in range 0(inclusive) and 100(exclusive)
var random_num = getRandomInt(0, 100);
console.log(random_num);

输出

6
46

首先,我们将最小值设为上限,而将最大值设为下限。

在这里,我们可以看到Math.random()产生的随机值是由数字差的一个因数缩放的。然后使用Math.floor()将其设置为整数。最后,将其添加到较小的数字,以产生给定范围之间的随机数。


示例4:生成两个数字(含)之间的整数
// Generating random integer in range [x, y]
// Both values are inclusive
function getRandomInt(min, max) {
  min = Math.ceil(min);
  max = Math.floor(max);
  return Math.floor(Math.random() * (max - min + 1)) + min;
}

// random int between 5 and 10
var random_num = getRandomInt(5, 10);
console.log(random_num);

// random int between 5 and 10
var random_num = getRandomInt(0, 100);
console.log(random_num);

输出

8
100

首先,我们将最小值设为上限,而将最大值设为下限。

在这种情况下,唯一的区别是将一个加到该差异上,以便也包括最大值