ale*_*lex 108

试一试.

<%= [*5..30].sample %>
Run Code Online (Sandbox Code Playgroud)

...要么...

<%= rand(5..30) %>
Run Code Online (Sandbox Code Playgroud)

  • 第一种解决方案效率低下.好东西不是5到100万之间的随机数......第二个解决方案只适用于Ruby 1.9.3.此问题之前已得到解答:http://stackoverflow.com/questions/198460/how-to-get-a-random-number-in-ruby (6认同)
  • 兰德更有效率 (3认同)

mdu*_*all 6

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

5 + rand(25)
Run Code Online (Sandbox Code Playgroud)

只需将min添加到rand(max-min).


Gui*_*nal 5

Range#sample办法.请改用一个Array.

<%= (5..30).to_a.sample %>
Run Code Online (Sandbox Code Playgroud)