Use rand(range)
(使用rand(range)
)
From Ruby Random Numbers :
(从Ruby随机数开始 :)
If you needed a random integer to simulate a roll of a six-sided die, you'd use: 1 + rand(6)
.
(如果您需要一个随机整数来模拟六面骰子的掷骰,则可以使用: 1 + rand(6)
。)
A roll in craps could be simulated with 2 + rand(6) + rand(6)
. (掷骰子可以用2 + rand(6) + rand(6)
模拟。)
Finally, if you just need a random float, just call rand
with no arguments.
(最后,如果您只需要随机浮点数,则可以不带任何参数调用rand
。)
As Marc-André Lafortune mentions in his answer below (go upvote it) , Ruby 1.9.2 has its own Random
class (that Marc-André himself helped to debug , hence the 1.9.2 target for that feature).
(正如Marc-AndréLafortune在下面的回答中提到的(支持它) , Ruby 1.9.2具有自己的Random
类 (Marc-André自己进行了调试 ,因此该功能的目标1.9.2 )。)
For instance, in this game where you need to guess 10 numbers , you can initialize them with:
(例如,在这个游戏中,您需要猜测10个数字 ,可以使用以下方法初始化它们:)
10.times.map{ 20 + Random.rand(11) }
#=> [26, 26, 22, 20, 30, 26, 23, 23, 25, 22]
Note:
(注意:)
This is why the equivalent of Random.new.rand(20..30)
would be 20 + Random.rand(11)
, since Random.rand(int)
returns “a random integer greater than or equal to zero and less than the argument .” 20..30
includes 30, I need to come up with a random number between 0 and 11, excluding 11.
(这就是为什么Random.new.rand(20..30)
等于20 + Random.rand(11)
,因为Random.rand(int)
返回“一个大于或等于0且小于 0的随机整数。 自变量 。” 20..30
包括30,我需要给出一个介于0到11之间的随机数(不包括11)。)
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…