我理解Math.floor将数字四舍五入为最小整数,但是当我们这样做时:Math.random()* 10不会将数字乘以10,例如9 * 10 = 90,那么数字如何在1到10之间?
感谢您帮助我得到答案!
答案 0 :(得分:3)
正如MDN
中所述Math.random()函数返回一个浮点伪随机函数 数字在[0,1]范围内[即从0(含)到最高但不是 包括1(独家),然后你可以扩展到你想要的 范围。实现选择随机的初始种子 数字生成算法;它不能被用户选择或重置。
即表示Math.random()*10
的最小值为0而上限值为10.在此表达式中加1会产生范围[1,11]中的数字。然后通过获取Math.floor,我们得到范围[0,10]中的整数,因为Math.floor()
将最大整数小于或等于返回给定数字。
答案 1 :(得分:3)
Math.random()
提供来自[number
,0
的随机1
(浮点:'['=包含,')'=独占)。
因此,在Math.floor( (Math.random() * 10) + 1);
中Math.random()
乘以10
将提供[0
,10
的随机数。
乘法后的+1
会将输出更改为[1
,11
)。
最后Math.floor( ... )
将[1
,11
范围内的随机数转换为整数值。
因此,执行语句的范围将是[1
,10
]的所有整数。或者更具体地说,它将是此集合中的一个数字:{1
,2
,3
,4
,5
,{{1 }},6
,7
,8
,9
}
答案 2 :(得分:1)
Math.random方法返回0(包括)和1(不包括)之间的随机数。这给出了0.9 * 10 = 9。
答案 3 :(得分:0)
通过Google V8项目:
Math.random()返回一个带有正号的Number值,大于 或等于0但小于1,随机选择或伪随机选择 在该范围内近似均匀分布,使用 依赖于实现的算法或策略。这个功能不需要 参数。
Math.random使用名为xorshift128+
的算法