Javascript 中在范围内生成随机数

Posted by cl9000 on November 10, 2020

不畏惧失败是创造力的一个基本要素。——<艾尔文·兰德博士>

介绍

作为软件开发人员,我们经常会遇到需要在代码中插入一些随机性的情况。

在本文中,我们将看看如何在 JavaScript 中生成随机数。我们还将介绍一些处理随机数的内置方法。最后,我们将通过编写一个函数来模拟六面骰子来充分利用这些知识。

在 JavaScript 中生成随机数

JavaScript 中的 Math.random() 生成一个介于 01 之间的浮点(十进制)随机数(包括0,但不包括1)。让我们通过调用:

1
2
3
console.log(Math.random())
// 这将输出一个类似于以下内容的浮点数:
0.9261766792243478

如果你处理百分数,这很有用,因为0到1之间的任何值,四舍五入到小数点后两位,都可以被认为是百分位数。

在范围内生成随机整数

不过,我们通常不处理0到1范围内的浮点数。那么,让我们来看一种四舍五入浮点数的方法。

我们可以使用 Math.floor() 四舍五入浮点数。类似地,我们可以通过 math.cell() 函数舍入一个数字:

1
2
console.log(Math.floor(3.6)) // 3
console.log(Math.ceil(3.6)) // 4

让我们在 minmax 之间生成一个随机数,不包括 max :

1
2
3
4
function randomNumber(min, max){
const r = Math.random()*(max-min) + min
return Math.floor(r)
}

或者,我们也可以在 math.cell() 函数中包含 max

我们用(max-min)乘法将范围[0,1) 转换为 [0,max-min) 。接下来,为了得到所需范围内的随机数,我们要加 min。最后,使用 Math.floor() 将其舍入为整数。

让我们调用这个方法几次,然后观察结果:

1
2
3
4
5
6
7
8
9
10
11
12
13
for (var i = 0; i < 10; i++) {
console.log(randomNumber(0, 10))
}
// 8
// 3
// 3
// 0
// 1
// 1
// 8
// 2
// 8
// 8

总结

生成随机数都是任何工程师工具箱中的重要工具,应该尽可能多地使用不同的生成方法和算法进行扩展。本文只是学习随机数生成的第一步。

参考

关注【公众号】,了解更多。



支付宝打赏 微信打赏

赞赏一下 坚持原创技术分享,您的支持将鼓励我继续创作!