ste*_*lag 7 ruby random syntax ruby-1.9.3
文件Array#sample说它可以采取rng:
如果给出rng,它将用作随机数发生器.
范围如何作为随机数发生器起作用,或者为什么这样的东西有用呢?
哈希表单也表明还有其他选项,但我找不到任何关于它们的信息.尝试[1,2,3,4,5].sample(3)表现就像[1,2,3,4,5].sample(3, random: 1..2).
参数应该是随机数生成器(RNG).
如果没有提供,则默认为"stock"Ruby实现.
它可以替换为任意RNG,就像一个完全没有随机的RNG:
class NotAtAllRandom
def self.rand(x=0)
0
end
end
> (1..10000).sample(3, random: NotAtAllRandom)
=> [1, 2, 3]
> (1..10000).sample(3, random: NotAtAllRandom)
=> [1, 2, 3]
Run Code Online (Sandbox Code Playgroud)