Класс Random
в Ruby 1.9.2 гарантированно генерирует случайные числа в том же порядке, учитывая конкретное начальное число и диапазон. Например:
r = Random.new(23)
r.rand(100) # 83
r.rand(100) # 40
Но предположим, что я хочу сгенерировать следующее число в последовательности на другом компьютере (без повторного создания более ранних чисел в последовательности). Это должно быть возможно, учитывая предыдущий вывод. Есть ли способ сделать это с классом Random
? Или я должен написать свою собственную реализацию Mersenne twister ?
[ Редактировать: Как указано в комментариях ниже, на самом деле невозможно определить состояние экземпляра Random
только из вывода, потому что только часть состояния ( младшие 32 бита) используются для вывода.]