【发布时间】:2021-08-08 07:49:45
【问题描述】:
我正在学习如何使用离散傅里叶变换(DFT)找到关于a^x mod(N) 的周期,其中x 是正整数,a 是任意素数,N 是乘积两个质因数p 和q。
比如2^x mod(15)的周期是4,
>>> for x in range(8):
... print(2**x % 15)
...
Output: 1 2 4 8 1 2 4 8
^-- the next period
DFT的结果如下,
(引自O'Reilly Programming Quantum Computers chapter 12)
4个单位间距的尖峰有4个,我认为后4个表示周期为4。
但是,当N 是 35 并且句点是 12 时
>>> for x in range(16):
... print(2**x % 35)
...
Output: 1 2 4 8 16 32 29 23 11 22 9 18 1 2 4 8
^-- the next period
在这种情况下,有 8 个大于 100 的尖峰,其位置分别为 0、5、6、11、32、53、58、59。
位置序列是否暗示了幻数 12?以及如何从右图中理解“12 个均匀分布的尖峰”?
【问题讨论】: