Почему случайная работа в Ruby?
Я пытался уметь детерминистически выбирать случайные вещи и нашел это:
irb(main):011:0> Random.new(Random.new(1).rand + 1).rand == Random.new(1).rand
=> true
irb(main):012:0> Random.new(Random.new(5).rand + 1).rand == Random.new(5).rand
=> false
irb(main):013:0> Random.new(Random.new(5).rand + 5).rand == Random.new(5).rand
=> true
На секунду я подумал "вау, может быть, это свойство генераторов случайных чисел", но Python и С# не могут воспроизвести это.
Ответы
Ответ 1
Вероятно, вы разочаруетесь в этом. Давайте посмотрим на вывод rand
:
irb(main):001:0> Random.rand
0.5739704645347423
Его число в диапазоне [0, 1). Random.new
принимает целое число.
irb(main):002:0> Random.new(5.5) == Random.new(5)
true
Тайна решена!