目前IBM推出的qiskit是非常棒的Python量子模拟器,直接使用pip install qiskit命令即可完成安装, 具体量子傅氏变换的代码及注释整理如下:
Python环境下安装
pip install qiskit
具体代码
# coding=utf-8
import math
from qiskit import QuantumRegister, ClassicalRegister, QuantumCircuit
# 忽略告警
import warnings
warnings.filterwarnings('ignore')
# 定义量子傅里叶变换函数qft
def qft(circ, q, n):
"""n-qubit QFT on q in circ."""
for j in range(n):
for k in range(j):
# 套用傅里叶就换
circ.cu1(math.pi/float(2**(j-k)), q[j], q[k])
circ.h(q[j])
# 量子比特数量
n = 3
q = QuantumRegister(n)
c = ClassicalRegister(n)
# 定义量子电路,后面可以可视化
qft_n = QuantumCircuit(q, c)
qft(qft_n, q, n)
for i in range(n):
qft_n.measure(q[i], c[i])
print(qft_n.qasm())
# 可视化
from qiskit.tools.visualization import circuit_drawer
# 可视化
circuit_drawer(qft_n,filename='./qft_circuit')
结果展示
┌───┐ ┌─┐
q0_0: |0>┤ H ├─■───────────■────────────┤M├───────────
└───┘ │pi/2 ┌───┐ │ └╥┘ ┌─┐
q0_1: |0>──────■─────┤ H ├─┼──────■──────╫──────┤M├───
└───┘ │pi/4 │pi/2 ║ ┌───┐└╥┘┌─┐
q0_2: |0>──────────────────■──────■──────╫─┤ H ├─╫─┤M├
║ └───┘ ║ └╥┘
c0_0: 0 ════════════════════════════════╩═══════╬══╬═
║ ║
c0_1: 0 ════════════════════════════════════════╩══╬═
║
c0_2: 0 ═══════════════════════════════════════════╩═
完毕!