Псевдослучайный прогноз двоичной последовательности

Учитывая псевдослучайную двоичную последовательность (например: 00101010010101) из конечных значений предскажите, как последовательность продолжится. Кто-то может сказать мне самый легкий способ сделать это? Или в случае, если это слишком трудно для кого-то, кто может едва играть пасьянс на его компьютере, может кто-то говорить мне, где получить мои первые шаги... PS: может эта техника использоваться для предсказания цвета следующего электронного числа рулетки (например: присвоение 1 и 0 к красному и черному цвету цвету соответственно)?

6
задан tshepang 27 May 2014 в 15:41
поделиться

4 ответа

Криптографически безопасные генераторы псевдослучайных чисел предназначены специально для того, чтобы сделать то, что вы хотите сделать, невозможным. В частности, они удовлетворяют «тесту следующего бита»: учитывая k битов их вывода, вы не можете угадать бит k + 1 с вероятностью больше, чем 1/2 ].

Генераторы простых псевдослучайных чисел, которые не удовлетворяют следующему битовому тесту, могут быть атакованы, и на самом деле в реальных системах были обнаружены уязвимости безопасности из-за выбора ГПСЧ. В частности, известно, что линейные конгруэнтные генераторы в некоторой степени (или полностью) предсказуемы, и некоторые версии Unix random могут использовать этот алгоритм. Тем не менее, этот метод довольно интенсивен с точки зрения математики. Если вы хотите пойти по этому пути, начните с поиска «предсказания линейного конгруэнтного генератора».

Другая атака, если вы знаете о реализации ГПСЧ, - это попытка определить начальное число, используемое для генерации анализируемой последовательности. Начальное число иногда основывается на предполагаемой информации, такой как время дня, идентификатор процесса и т. Д.

3
ответ дан 17 December 2019 в 02:24
поделиться

Что ж, для псевдослучайных последовательностей единственная возможность - это подсчитать, сколько из каждой возможности появилось раньше. Если единицы перевешивают нули, более вероятно, что следующая единица будет 0. Насколько больше вероятность, зависит от относительной встречаемости каждого из них.

Обратите внимание, что это не сработает для истинной случайности, поскольку события независимы, несмотря на то, что вам говорят статистики: -)

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

1
ответ дан 17 December 2019 в 02:24
поделиться

Сначала отвечу на PS: Нет, потому что вращения рулетки являются независимыми событиями, поэтому в исторической последовательности результатов нет ничего предсказуемого. .

Общий вопрос сложный и интересный. Этот веб-сайт может вывести удивительное количество последовательностей из их начальных значений:

http://www.research.att.com/~njas/sequences/

Обратите внимание, что это для произвольных целочисленных последовательностей.

Я пробовал это на простых шаблонах, таких как {0,0,1,1,0,0,1,1, ...}, и он говорит правильно.

1
ответ дан 17 December 2019 в 02:24
поделиться

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

Вам следует изучить какой-нибудь базовый язык, и многие скажут PHP, но я не рекомендую его новичкам (хотя с ним довольно легко работать, см.:XAMPP). Java, вероятно, является "простым в освоении и работе" языком, но я уверен, что здесь есть лучшие темы о том, с какого языка начать (Python или что-то подобное, вероятно, выиграет, потому что опытные программисты любят его).

Кстати, ваш английский в порядке (я не заметил, что вы не являетесь носителем английского языка).

Теперь, что касается вашего вопроса, если вы рассматриваете истинное сопоставление шаблонов. Я был бы склонен преобразовать эту идею в код:

 "CURRENTPOINT" is end of first letter.
 LOOP: Pick letter(s) from Start to "CURRENTPOINT"
 Break the rest of your binary string into blocks of the same size.
 See if these blocks all equal your picked letters.
 If not, move "CURRENTPOINT" along and repeat the LOOP until you run out of letters.
 If so, you have your "repeating section."

Если вы просто предполагаете, что генератор случайных чисел временно смещен, и что это смещение восстановит базовую линию (сбалансированные 0 и 1) в разумно краткосрочной перспективе, тогда вы можете сравнить количество каждых 0 и 1 и сказать, что второй более вероятен, основываясь на отклонении от вашей базовой линии. Однако будьте осторожны с заблуждением Монте-Карло.

1
ответ дан 17 December 2019 в 02:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: