B3: SWAP Qubits

実行時間制限:3 秒

メモリ制限:512 MiB

配点:200点

問題文

22 量子ビットの状態をスワップする操作を、22 量子ビットをもつ量子回路 qc\mathrm{qc} 上に実装せよ。

正確には、次の操作を実装せよ。

a0∣00⟩+a1‾∣10⟩+a2‾∣01⟩+a3∣11⟩→qca0∣00⟩+a2‾∣10⟩+a1‾∣01⟩+a3∣11⟩\begin{equation} a_0\ket{00} + \underline{a_1}\ket{10} + \underline{a_2}\ket{01} + a_3\ket{11} \xrightarrow{\mathrm{qc}} a_0\ket{00} + \underline{a_2}\ket{10} + \underline{a_1}\ket{01} + a_3\ket{11} \nonumber \end{equation}

ただし、aia_i は任意の複素振幅を表す。

制約

  • この問題では Qiskit の SwapGate を利用してはならない。
  • グローバル位相 は問わない。
  • 提出されるコードは次のフォーマットにしたがうこと
from qiskit import QuantumCircuit
 
 
def solve() -> QuantumCircuit:
    qc = QuantumCircuit(2)
    # Write your code here:
 
    return qc

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