W3C上有一个教程代码生成1-3的随机数是这样的
slotOne = Math.floor(Math.random() * (3 - 1 + 1)) + 1;
(3 -1 + 1)这个是为什么?就我所知道的,要生成0-n的随机数
Math.floor(Math.random() * n);
所以既然是1-3,应该是
Math.floor(Math.random() * 3) + 1;
希望有大神解释一下...
是网站人员的问题,还是有其他的原因...
W3C上有一个教程代码生成1-3的随机数是这样的
slotOne = Math.floor(Math.random() * (3 - 1 + 1)) + 1;
(3 -1 + 1)这个是为什么?就我所知道的,要生成0-n的随机数
Math.floor(Math.random() * n);
所以既然是1-3,应该是
Math.floor(Math.random() * 3) + 1;
希望有大神解释一下...
是网站人员的问题,还是有其他的原因...
function getRandomInt(min, max) {
return Math.floor(Math.random() * (max - min + 1) + min);
}
//公式Math.floor(Math.random() * (max - min + 1) + min)
//因为Math.floor是向下取整,虽然Math.random() * (max - min) + min 生成min-max之间的随机数
//但因为Math.floor的关系,取整后最大值是max-1;所以需要+1
//最小值不管怎么取整都肯定是min
//套入公式就是(3+1-1);这里的关键不是3+1-1=3,而是公式,比如2-4的话4—2+1肯定不等于4吧
10 回答11.2k 阅读
5 回答4.9k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
3 回答2.4k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
生成一个
m~n
的随机数,则最小值为m+0
,最大值为m+(n-m+1)
;而
Math.random()
生成的是0~1
,故Math.floor(Math.random() * (n - m + 1)) + m
套入1-3
就是你要的值