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