Silverlight System.Random секвенирование кроссплатформенного - PullRequest
1 голос
/ 25 мая 2010

Мне нужно знать влияние различных платформ на объект System.Random (Silverlight). Одинаково ли создана последовательность на Mac, ПК и в 32/64-битном формате?

Ответы [ 2 ]

1 голос
/ 25 мая 2010

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

Кажется, у вас есть какое-то "ожидание", когда вам нужно синхронизировать случайные числа на нескольких платформах, и использование генератора случайных чисел для последовательностей ожидаемых значений выглядит странно для меня.

Если вы можете рассказать нам больше о вашем случае использования, может быть, мы сможем найти другое более надежное решение?

Только мое мнение.

0 голосов
/ 25 мая 2010

Алгоритм генерации случайных чисел кодируется во время выполнения. Следовательно, независимо от платформы вы должны увидеть один и тот же набор «случайных» чисел для данного начального значения.

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

...