Рейтинг:1

Программа для прогнозирования 5-битного вывода случайного модуля Mersenne Twister из python

флаг cn

Есть ли программа для прогнозирования случайного модуля вихря Мерсенна в python для 5-битного целочисленного вывода при условии, что доступны последовательные 3994 вывода? Случайный модуль не засеян, поэтому я предполагаю, что он будет использовать системное время в качестве начального значения, поскольку функция os.random не используется! и он засеян только один раз (предположение). Мои претензии выглядят обоснованными! и действительно ли это предсказуемо? пожалуйста, простите меня, если я ошибаюсь, я только начинающий.

fgrieu avatar
флаг ng
По крайней мере, 3994×5 бит дает вам немного больше битов, чем есть в состоянии стандартного MersenneTwister, так что я не вижу никакой теоретико-информационной невозможности. Спрашивать рекомендацию о существующей программе (например, в github или что-то в этом роде) не по теме, но обсуждение того, какие методы можно было бы использовать, кажется мне нормальным, даже несмотря на то, что MersenneTwister не предназначен для использования в криптографических приложениях. Если бы вопрос давал формальное определение целевого варианта MersenneTwister, включая способ получения 5-битных выходных данных, это помогло бы.
Mohammed Siddique avatar
флаг cn
@fgrieu давайте предположим, что это 32-битный вариант, а также если 3994 вывода были непоследовательными, хотя я упомянул последовательный в своем вопросе. если были какие-то отсутствующие выходы, и мы не знаем, действительно ли они отсутствуют, но у нас есть 3994, можно ли все же исправить начальное число?
Mohammed Siddique avatar
флаг cn
@fgrieu также, я забыл упомянуть об этом в вопросе ... поскольку 3993,6 * 5 получает 19968, я не мог написать программу для значений с плавающей запятой, поэтому упоминание n как 3994 вызывает ошибку в предсказателе?
fgrieu avatar
флаг ng
Непоследовательные выходные данные усложнят задачу, но я не вижу причин, по которым это сделало бы ее невозможной, если только выходные данные не расположены преднамеренно, чтобы сделать задачу невыполнимой (например, $2^{20000}-2^{63}$ слов раздельно). Опять же, чтобы решить эту проблему, нам нужно знать, как 5-битные выходные данные извлекаются из выходных данных вихря Мерсенна, и модель конкретного используемого вихря Мерсенна. Реверс-инжиниринг Python довольно не по теме. Использование поплавков для подсчета редко бывает хорошей идеей, забудьте об этом. Если вы что-то пробовали, возможно поясните что (в вопросе).
Mohammed Siddique avatar
флаг cn
5-битные выходные данные извлекаются из твистера Мерсенна с использованием функции python randint (0, 31), и она не использует systemrandom, а начальное значение инициируется только один раз. Программа, которую я пытался реконструировать, не завершена. Извините, я не знаю реверс-инжиниринга, питон не по теме, я новичок в этом @fgrieu

Ответить или комментировать

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