量子傅里叶算法
经典离散傅里叶算法
对于数据点集合,其离散傅里叶变化为
量子离散傅里叶算法
n比特的态可以表示成,可将态看着二进制数,从而也可将态写成十进制数表示为
,其中
n=3
s='111'
k=int(s,2) # 参数2用来表示从二进制转化为十进制
s==bin(k)[2:].zfill(n) #bin函数用来转化为二进制,zfill函数用来补零
对于二进制的分数表示,其表示为十进制为
我们有
n=3
s='0.011'
k=int(s[2:],2)/2**n
s=='0.'+bin(int(k*2**n))[2:].zfill(n)
对于态,其傅里叶变换定义为
其中,设
其矩阵表示为,
根据定义
第四个等式到第五个等式用到事实
门实现
对于目标态
对于目标态
可先对做哈德马德变换,在做用
控制
的相位门
,其中
具体实现如下图,最后再做sweep门交换一下态即可。

网友评论