当你使用 Math.floor(Math.random()*10)+1
时,根据我所理解的,它应该在1-10之间随机选择一个数字。
然而,当我将 +1
改成任何比 1
更高或更低的数字时,我得到相同的结果。为什么会这样? +1
究竟是什么意思?
当你使用 Math.floor(Math.random()*10)+1
时,根据我所理解的,它应该在1-10之间随机选择一个数字。
然而,当我将 +1
改成任何比 1
更高或更低的数字时,我得到相同的结果。为什么会这样? +1
究竟是什么意思?
Math.floor(Math.random() * N) + M
Math.floor
,因此数字范围在M和M+N-1之间。你需要使用Math.round
才能获得M和M+N之间的数字。然而,在这种情况下,分布不是均等的,因为M和M+N只有一半的机会被选中。 - ChristophMath.floor((Math.random() * N) + M)
的工作原理。所以,谢谢! - Partack整数是介于1和10之间的数字。
例如:
math.random() [随机返回:0.19157057767733932]
(此数字仍将具有许多小数位)
要获取随机整数,需要将生成的随机数字乘以10。
例如:
math.random()*10 = [随机返回:2.9757621488533914]
例如:
math.floor(0.6) [返回0]
math.floor(0.6)+1 [返回1]
Math.random()
生成 0 到 1 之间的随机数。Math.random()*10
生成 0 到 10 之间的随机数,而 (Math.random()*10)+1
生成 1 到 11 之间的随机数。
Math.floor()
去除这个数的小数部分,并将其变为从 0 到 10 的整数。Math.random()
也可以生成0.9999...
。确切地说, Math.random()
生成一个介于(包含)0和(不包含)1之间的数字。 - Rob W基础:
(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
最大舍入值:
(Math.round(random() * 10, 0) >= 0)
总是 true
(Math.round(random() * 10, 0) <= 10)
总是 true
1
的作用,但是你的代码可能存在其他问题。如果你有这样的问题,请发布你的实际代码。当我改变+1时...我得到相同的结果。 - user1106925