Мне нужно раздать систему Java, использующую псевдоданные. Каждый узел системы должен обрабатывать определенное количество рандомов.Можно ли разделить псевдослучайное событие
Результаты должны быть воспроизводимыми, поэтому рандомы должны зависеть от семени в качестве параметра.
Random random = new Random(long seed);
Например, если нужно обрабатывать 100 Randoms и у меня есть 2 узла, первый узел должен обрабатывать от 1 до 50, а второй от 51 до 100.
Проблема заключается в том, что нужно pseudorandoms перебирать себя, чтобы каждый раз воспроизводить ту же последовательность рандомов (для одного и того же семени).
В предыдущем примере есть ли способ начать генерировать рандомы во втором узле из 51-го случайного? (Таким образом, избегая необходимости генерировать и удалять randoms от 1 до 50 в этом узле).
Не особо. Вам лучше разобраться в другой схеме, как разделить случайные числа между узлами, например. два узла будут использовать каждое другое случайное число, а не первые 50 и последние 50. Нужно ли его воспроизводить, даже если вы измените количество узлов? Если это не так, это может облегчить задачу, связав другие экземпляры «Random» с семенами, созданными первым «Random». –
Хм ... это не решило бы мою проблему, так как каждый узел должен был обрабатывать до 100-го случайного в любом случае. –
Не используйте псевдослучайные последовательности, вместо этого используйте хеш-функцию. Первый узел обработает хэши 1.50, второй обработает хэши 51..100 –