問題文
整数 n が入力として与えられる。
n 量子ビットに対する量子フーリエ変換を実装せよ。
量子フーリエ変換は、0 以上 2n 未満の任意の整数 jに対して
∣j⟩nQFT2n1k=0∑2n−1exp(2n2πijk)∣k⟩n
を満たす n 量子ビットオラクル QFT として定義される。
制約
- 1≤n≤10
- 量子回路の 深さ は 25 を超えてはならない。
- 整数は リトルエンディアン にしたがってエンコードすること (例:∣100⟩=1=∣001⟩)
- グローバル位相 は問わない。
- 提出されるコードは次のフォーマットにしたがうこと
from qiskit import QuantumCircuit
def solve(n: int) -> QuantumCircuit:
qc = QuantumCircuit(n)
# Write your code here:
return qc
入力例
- n=2:
実装された量子回路 qc は次式を満たす。
∣10⟩qc41(∣00⟩+eπi/2∣10⟩+eπi∣01⟩+e3πi/2∣11⟩)
ヒント
開く
- 今回はリトルエンディアンを前提として回路を実装することに注意してください。