关于ruby on rails:如何打印范围之间的随机数?

How to print out a random number between a range?

本问题已经有最佳答案,请猛点这里访问。

我有以下内容,但不起作用:

1
<%= (5..30).sample %>

试一试。

1
<%= [*5..30].sample %>

…或…

1
<%= rand(5..30) %>


这将在该范围内生成一个随机数:

1
5 + rand(25)

只需将最小值添加到兰特(max-min)。


Range没有#sample方法。用Array的那个代替。

1
<%= (5..30).to_a.sample %>

对于1个随机数:

1
2
a = (5...30).sort_by{rand}[1]
# => 7

这似乎比其他人的建议更详细,但从这里,很容易从同一范围中选择三个随机唯一的数字:

1
2
a = (5...30).sort_by{rand}[1..3]
# => [19, 22, 28]

或20:

1
2
a = (5...30).sort_by{rand}[1..20]
# => [7, 12, 16, 14, 13, 15, 22, 17, 24, 19, 20, 10, 21, 26, 29, 9, 23, 27, 8, 18]

可能对需要在侧边栏中显示5个随机FOO的人有用

编辑:多亏了马克·安德烈·拉夫图恩,我发现下面的情况好多了:

1
a=[*5..30].sample(3)