Подтвердить что ты не робот

Как распечатать случайное число между диапазоном?

У меня есть следующее, но оно не работает:

<%= (5..30).sample %>
4b9b3361

Ответ 1

Сделайте снимок.

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

... или...

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

Ответ 2

Это создаст случайное число в этом диапазоне:

5 + rand(25)

Просто добавьте min в rand (max-min).

Ответ 3

Range не имеет метода #sample. Используйте вместо этого Array.

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

Ответ 4

для 1 случайного числа:

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

Это кажется более подробным, чем то, что предложили другие, но отсюда легко выбрать три случайных уникальных числа из одного диапазона:

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

Или 20:

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 случайных фосов в своей боковой панели.

EDIT: Благодаря Marc-Andre Lafortune, я обнаружил, что следующее намного лучше:

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