210 votes

Comment générer un nombre aléatoire entre a et b en Ruby ?

Pour générer un nombre aléatoire compris entre 3 et 10, par exemple, j’utilise :``

Y a-t-il une façon plus agréable de le faire (quelque chose comme `` ) ?

358voto

Nakilon Points 11635
(a..b).to_a.sample

Ou

[*a..b].sample

Tableau#exemple

Standard de Ruby 1.8.7+.
Note: a été nommé numéro un choix au 1.8.7 et renommé dans les versions ultérieures.

Mais de toute façon, la génération de la matrice de besoin de ressources, et la solution que vous avez déjà écrit, c'est le meilleur, vous pouvez le faire.


UPD: en outre, il a été annoncé, que Ruby 1.9.3 Kernel#rand accepte les plages

rand(a..b)

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

Mais les gens disent qu'il ne fonctionne pas.

88voto

user1782571 Points 531
<pre><code></code><p><code></code><code></code></p></pre>

5voto

Chaseph Points 445
def random_int(min, max)
    rand(max - min) + min
end

3voto

bnaul Points 4006

Voir cette réponse : il est en Ruby 1.9.2, mais pas dans les versions antérieures. Personnellement, je pense que rand(8) + 3 est très bien, mais si vous êtes intéressé consultez sur la classe Random décrit dans le lien.

3voto

xt.and.r Points 187

Pour 10 et 10 ** 24

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X