Можно ли генерировать случайные числа с помощью моделирования физических процессов? - PullRequest
2 голосов
/ 07 марта 2009

Можно ли генерировать случайные числа с помощью моделирования физических процессов?

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

Ответы [ 7 ]

6 голосов
/ 07 марта 2009

У вас будет сложная симуляция, которая действительно ничего не даст.

(кроме того, чтобы каждый раз возвращать одно и то же значение или добавлять ненужную сложность к существующему PRNG)

Если вы не заполняете моделируемое окружение "случайными" переменными (т. Е. Зависите от разных способов генерации случайных чисел), вы всегда будете возвращать одно и то же значение, потому что каждый шаг в процессе будет происходить каждый раз одинаково.

Скажем, вы использовали базовый генератор псевдослучайных чисел (PRNG):

Поскольку ваша симуляция будет такой же случайной, как и у другого используемого вами PRNG, вы можете просто использовать другой PRNG напрямую, без дополнительной работы! (Фактически, ваша симуляция может ничего не делать, кроме как сделать вывод меньше случайным, чем значения из вашего базового PRNG)

1 голос
/ 07 марта 2009

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

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

Тем не менее, это может быть интересным и информативным экспериментом для ваших собственных целей.

1 голос
/ 07 марта 2009

Да, вы бы "просто имели сложную симуляцию, которая действительно ничего не дает".

Зачем имитировать случайный физический процесс, если вы действительно можете использовать реальный?

В SO есть стопки вопросов о генераторах случайных чисел. Вот только некоторые из них:

Генератор истинных случайных чисел

Существуют ли генераторы случайных чисел без состояния?

Какой тип генератора случайных чисел используется в игровой индустрии казино?

0 голосов
/ 07 марта 2009

Если вы не готовы смоделировать квантовое состояние двух целых матриц, у вас не будет ничего случайного ...

0 голосов
/ 07 марта 2009

Сначала вам нужно определить «случайный». Вы можете генерировать тривиально непредсказуемые числа с помощью странного набора вычислений. Но вы не получите полезной случайности или равномерного распределения чисел.

Физическое моделирование, как вы описываете, на самом деле потребует какой-то генератор случайных чисел в какой-то момент в расчете. К счастью, random () прост в использовании.

0 голосов
/ 07 марта 2009

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

0 голосов
/ 07 марта 2009

Позднее.

Если вы не введете какие-либо случайные (или псевдослучайные) факторы, симуляция будет давать одинаковые результаты каждый раз.

...