Math.random()返回介于 0(包含) ~ 1(不包含) 之间的一个随机数.
Math.round()四舍五入
Math.exp(x): 返回 e 的 x 次幂的值。 E 为自然底数 (近似值 2.7183)。
用JS的随机数生成函数random()配合其他数学函数可以限制随机数的取值。
JS的随机数函数及相关函数:
Math.random()结果为0-1间的一个随机数(包括0,不包括1) 。
Math.floor(num)参数num为一个数值,函数结果为num的整数部分。
Math.ceil(n)返回大于等于n的最小整数。
Math.round(num)参数num为一个数值,函数结果为num四舍五入后的整数。
因此可以用以上函数配合实现取1-6的随机数:
1,用Math.ceil(Math.random()*6)时,主要获取1到6的随机整数,取0的几率极小。
2,用Math.round(Math.random()*5 + 1),可基本均衡获取1到6的随机整数,其中获取最小值0和最大值6的几率少一半。
3,用Math.floor(Math.random()*6 + 1)时,可均衡获取1到6的随机整数。math.random随机生成的是0-1之间的浮点小数,你可以把这个数乘以一个数,得到一个范围内的随机整数数。
然后用这个整数乘以8,就是8的倍数。
//GetRandomInt是一个生成随机数的函数,需要你输入一个n座位参数//这个生成的随机数就小于n
function GetRandomInt(n) {
return parseInt(Math.floor(Math.random() * n))
}
//生成在n以内的8的倍数随机数
function GetNum(n) {
//这里把参数n先除以8,如果等于0则直接返回0
let inum = parseInt(Math.floor(n / 8))
if(n == 0){
return 0
}
//如果不等于0则返回一个这个数的随机数,然后乘以8.
return parseInt(GetRandomInt(inum)*8)
}
//通过控制台随机打印100以内8的倍数
console.log('生成8的倍数的随机数:'+GetNum(100))
以上代码你参考一下