如果你Math.floor(Math.random()*10)+1
它应该根据我的理解选择1-10之间的随机数。
但是,当我将+1
更改为高于或低于1
的任何数字时,我得到相同的结果。为什么是这样? +1
到底意味着什么?
答案 0 :(得分:9)
随机数发生器产生的值在0.0 <= n <0的范围内。 1.0。如果您想要一个介于1和之间的数字,则需要应用+1
偏移量。
通常你可以使用:
Math.floor(Math.random() * N) + M
这将生成M和M + N - 1之间的值。
<强> demo Fiddle 强>
答案 1 :(得分:3)
Math.random()
生成0到1之间的随机数。
因此Math.random()*10
生成0到10之间的随机数,(Math.random()*10)+1
生成1到11之间的数字。
Math.floor()
删除此数字的小数,并使其成为0到10之间的整数。
您可以看到逻辑here
的连续进展答案 2 :(得分:2)
整数介于1到10之间
等:
math.random()[随机返回:0.19157057767733932]
(此数字仍有许多小数位)
要获得随机整数,您需要将随机生成的数乘以10。
等 math.random()* 10 = [随机返回:2.9757621488533914]
等:
math.floor(0.6)[return 0]
math.floor(0.6)+ 1 [return 1]
答案 3 :(得分:0)
基本:
(random() >= 0)
始终true
(random() < 1)
始终true
(Math.floor(random()) == 0)
始终true
最大:
(Math.floor(random() * 10) >= 0)
始终true
(Math.floor(random() * 10) < 10)
始终true
最小
(Math.floor(random() * 10) + 1 >= 1)
始终true
(Math.floor(random() * 10) + 1 < 11)
始终true
Max Round:
(Math.round(random() * 10, 0) >= 0)
始终true
(Math.round(random() * 10, 0) <= 10)
始终true