Поиск семян для 5-байтового PRNG

Старая идея, но с тех пор я не могНе могу найти какой-то достаточно хороший способ решить возникшую проблему. Так что я "изобрел" (см. ниже) очень компактный и, на мой взгляд, достаточно хорошо работающий PRNG, но я могуt понять алгоритмы для построения подходящих начальных значений для него на больших битовых глубинах. Мое текущее решение просто грубое, оноВремя работы с O (n ^ 3).

Генератор

Моя идея пришла от XOR кранов (по сутиЛРСОС) некоторые старые 8-битные машины, используемые для генерации звука. Я возился с XOR в качестве базы на C64, пытался собрать коды операций и испытал результат. Окончательное рабочее решение выглядело так:

asl
adc #num1
eor #num2

Это 5 байтов на 6502. С правильно выбранными num1 и num2 в аккумуляторе он перебирает все 256 значений в кажущемся случайном порядке, то есть он выглядит достаточно случайным, когда используется для заполнения экрана (я написал немного 256b демо тогда). Есть 40 подходящих Num1 & num2 пары для этого, все дают прилично выглядящие последовательности.

Понятие может быть хорошо обобщено, если выражено в чистом C, это может выглядеть так (BITS битовая глубина последовательности):

r = (((r >> (BITS-1)) & 1U) + (r < 1) + num1) ^ num2;
r = r & ((1U

Ответы на вопрос(1)

Ваш ответ на вопрос