Как получить случайное число в Ruby
Хотя вы можете использовать ruby rand(42-10) + 10
для получения случайного random числа между 10
и 42
(где 10 - включительно, а ruby-on-rails 42 - исключающее), с Ruby random 1.9.3 есть способ лучше, где prng вы можете вызывать:
rand(10...42) # => 13
Доступно rand для всех версий Ruby, если ruby-on-rails-4 требуется мой гем backports
.
Ruby 1.9.2 random-numbers также представил класс Random
, чтобы rng вы могли создавать свои собственные ruby объекты генератора случайных ruby-on-rails чисел и имел приятный API:
r = Random.new
r.rand(10...42) # => 22
r.bytes(3) # => "rnd"
Сам rails3 класс Random
действует как генератор prng случайных чисел, поэтому rand вы вызываете напрямую:
Random.rand(10...42) # => same as rand(10...42)
Примечания к Random.new
В большинстве rails случаев проще всего использовать rails rand
или Random.rand
. Создавать новый генератор ruby-on-rails случайных чисел каждый раз, когда random-sample вам нужно случайное число, - это rng действительно плохая идея. Если вы сделаете это, вы ruby-on-rails-4 получите случайные свойства ruby алгоритма начального заполнения, которые ruby-on-rails-4 ужасны по сравнению со свойствами ruby random generator itself.
Если вы используете Random.new
, вам ror3 следует называть его как можно реже, например, один ror раз как MyApp::Random = Random.new
и использовать его random-number везде.
Random.new
полезен в следующих random случаях:
- вы пишете драгоценный камень и не хотите вмешиваться в последовательность
rand
/Random.rand
, на которую могут полагаться основные программы - вам нужны отдельные воспроизводимые последовательности случайных чисел (скажем, по одному на поток).
- вы хотите иметь возможность сохранять и возобновлять воспроизводимую последовательность случайных чисел (просто, как объекты
Random
можно упорядочить)
ruby-on-rails
ruby
ruby-on-rails-3
ruby-on-rails-4
random
Как получить случайное число в Ruby
Мы используем файлы cookies для улучшения работы сайта. Оставаясь на нашем сайте, вы соглашаетесь с условиями использования файлов cookies. Чтобы ознакомиться с нашими Положениями о конфиденциальности и об использовании файлов cookie, нажмите здесь.