小编典典

如何在Ruby中生成a和b之间的随机数?

all

例如,要生成 3 到 10 之间的随机数,我使用:rand(8) + 3

有没有更好的方法来做到这一点(类似rand(3, 10))?


阅读 82

收藏
2022-07-02

共1个答案

小编典典

更新:Ruby 1.9.3Kernel#rand也接受范围

rand(a..b)

http://www.rubyinside.com/ruby-1-9-3-introduction-and-
changes-5428.html

转换为数组可能太昂贵了,而且没有必要。


(a..b).to_a.sample

或者

[*a..b].sample

数组#sample

Ruby 1.8.7+ 中的标准。
注意:在 1.8.7 中被命名为#choice,并在以后的版本中重命名。

但是无论如何,生成数组需要资源,而您已经编写的解决方案是最好的,您可以做到。

2022-07-02