Как распечатать случайное число между диапазоном? У меня есть следующее, но оно не работает: <%= (5..30).sample %> Ответ 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)
Ответ 2 Это создаст случайное число в этом диапазоне: 5 + rand(25) Просто добавьте min в rand (max-min).
Ответ 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)