B4: Quantum Fourier Transform

実行時間制限:3 秒

メモリ制限:512 MiB

配点:200点

問題文

整数 nn が入力として与えられる。 nn 量子ビットに対する量子フーリエ変換を実装せよ。

量子フーリエ変換は、00 以上 2n2^n 未満の任意の整数 jjに対して

jnQFT12nk=02n1exp(2πijk2n)kn\begin{equation} \ket{j}_n \xrightarrow{\mathrm{QFT}} \sqrt{\frac{1}{2^n}} \sum_{k=0}^{2^n-1} \exp{\left(\frac{2\pi i j k}{2^n}\right)} \ket{k}_n \nonumber \end{equation}

を満たす nn 量子ビットオラクル QFT\mathrm{QFT} として定義される。

制約

  • 1n101 \leq n \leq 10
  • 量子回路の 深さ2525 を超えてはならない。
  • 整数は リトルエンディアン にしたがってエンコードすること (例:100=1001\ket{100} = 1 \neq \ket{001})
  • グローバル位相 は問わない。
  • 提出されるコードは次のフォーマットにしたがうこと
from qiskit import QuantumCircuit
 
 
def solve(n: int) -> QuantumCircuit:
    qc = QuantumCircuit(n)
    # Write your code here:
 
    return qc

入力例

  • n=2n = 2: 実装された量子回路 qc\mathrm{qc} は次式を満たす。
10qc14(00+eπi/210+eπi01+e3πi/211)\ket{10} \xrightarrow{\mathrm{qc}} \frac{1}{\sqrt{4}} (\ket{00} + e^{\pi i / 2}\ket{10} + e^{\pi i}\ket{01} + e^{3 \pi i / 2}\ket{11})

ヒント

開く
  • 今回はリトルエンディアンを前提として回路を実装することに注意してください。

解答を提出するにはログインしてください。