Путем множества проб и ошибок я обнаружил следующие строки кода Python,
for N in range(2**1,2**3):
print [(2**n % (3*2**(2*N - n))) % (2**N-1) for n in range(2*N+1)]
, которые производят следующий вывод,
[1, 2, 1, 2, 1]
[1, 2, 4, 1, 4, 2, 1]
[1, 2, 4, 8, 1, 8, 4, 2, 1]
[1, 2, 4, 8, 16, 1, 16, 8, 4, 2, 1]
[1, 2, 4, 8, 16, 32, 1, 32, 16, 8, 4, 2, 1]
[1, 2, 4, 8, 16, 32, 64, 1, 64, 32, 16, 8, 4, 2, 1]
, то есть степени от 2 до 2**(N-1)
, 1, и полномочия двух поменялись местами.Это именно то, что мне нужно для моей проблемы (FFT и вейвлет, связанные).Тем не менее, я не совсем уверен, , почему это работает?Заключительная операция по модулю, я понимаю, она обеспечивает 1 в середине серии.Фактор 3 в первой операции по модулю вызывает у меня головную боль.Кто-нибудь может предложить объяснение?В частности, какова связь между моей базой, 2, и фактором, 3?