10
Я пытался быть умным о детерминировано собирание случайных вещей, и нашел это:Почему случайная работа в 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 и C# не воспроизведите это.
Обратите внимание, что OP не тестирует равенство между экземплярами 'Random', но между поплавками. A (маленький) шаг отсутствует в вашем объяснении IMHO. –
@ EricDulusil: Равенство заключалось в том, чтобы указать, что они имеют одно и то же состояние, поэтому, конечно, они будут создавать одинаковые случайные числа. ('a == b' для' a.is_a? Random' подразумевает 'a.rand == b.rand'.) – Ryan
Это может быть очевидно для вас, но не для OP или для всех, кто придет, чтобы прочитать ваш ответ. Мне нужно было посмотреть «random.c», чтобы проверить, как определено равенство «Случайное». Мой 2c $. –