今天学习了freecodecamp网站里JavaScript生成某个范围内的随机整数。
1、首先要清楚:
1.max:最大值
2.min:最小值
3.Math.floor():向下取整(如 Math.floor(8.7)结果为8)
4.Math.random():生成一个0~1的随机小数包括0,但不包括1.
2、拆分:
1.首先通过Math.random()获取一个0~1随机小数(包括0,不包括1)
2.max-min意思就是通过最大值和最小值相减获取最大值和最小值的区间
3.那么max-min需要+1再乘以Math.random()呢?因为Math.random()的范围不包括1,如果不+1,假设max=5,min=3,那么 (5-3)*0.9999...只能无限接近2,一旦通过Math.floor()进行向下取整,值便会等于1,但是我们要的区间范围是多少? 是2,那么+1呢?会不会大于2?很明显,(5-3+1)*0.99999只会无线接近3,最终向下取整结果为2,所以max-min+1就会得到我们需要的区间范围。
4.我们知道了区间范围,最后通过+min,把区间范围锁定在max~min之间,即Math.random()获取到的随机数为0时,得到最小值,最小值就是min。
留下一个问题:理论上能随机到max值吗?
萌新一个,有错指出必更正。