Что гарантирует Random (int seed)?

Я работаю над проектом, который основывается на назначении пользователей случайным образом (ничего особенного, просто равномерно) подмножества большего набора. Каждый пользователь имеет уникальный идентификатор из набора, изоморфного целым числам. Насколько я могу судить, есть два подхода к этому.

  1. Создайте таблицу соединений базы данных между пользователями и ключевыми элементами вышеупомянутого большого набора с некоторой функцией один раз для каждого пользователя. Это может быть несколько непрактично для моих нужд, поэтому я бы предпочел ...
  2. Во время выполнения определите подмножество аналогичной функцией, но используйте уникальный идентификатор пользователя в качестве начального значения и просто сохраните набор в памяти. В следующий раз, когда он понадобится, он будет создан снова из большего набора.

Итак, мой вопрос: если я использую объект .NET Random для создания второй функции с использованием идентификатора пользователя в качестве начального значения, гарантирует ли Microsoft, что не изменит Случайный алгоритм в будущем? Т.е. будут ли все новые последовательности Random (n) Next () всегда одинаковыми на всех машинах ?

В качестве альтернативы я мог бы создать свой собственный генератор случайных чисел и упаковать его своим кодом. Фактически, я, вероятно, так и сделаю, но мне все еще любопытно узнать ответ.

14
задан Gleno 18 June 2011 в 05:57
поделиться