B4: Reflection Operator I

実行時間制限:3 秒

メモリ制限:512 MiB

配点:200点

問題文

整数 nn が入力として与えられる。 次式 の行列 AA で定義される操作を、 nn 量子ビットをもつ量子回路 qc\mathrm{qc} 上に実装せよ。

A=2∣0⟩⟨0∣−IA = 2 \ket{0} \bra{0} - I

ただし、 II は 2n×2n2^n \times 2^n の単位行列を表す。

制約

  • 2≤n≤102 \leq n \leq 10
  • グローバル位相 は問わない。
  • 提出されるコードは次のフォーマットにしたがうこと
from qiskit import QuantumCircuit
 
 
def solve(n: int) -> QuantumCircuit:
    qc = QuantumCircuit(n)
    # Write your code here:
 
    return qc

入力例

  • n=2n=2: 行列 AA は、次式で表現される。
A=2∣00⟩⟨00∣−I=(10000−10000−10000−1)A = 2 \ket{00} \bra{00} - I = \begin{pmatrix} 1 & 0 & 0 & 0\\ 0 & -1 & 0 & 0\\ 0 & 0 & -1 & 0\\ 0 & 0 & 0 & -1 \end{pmatrix}

ヒント

開く
  • nn 量子ビットの量子状態 ∣ψ⟩\ket{\psi} も 11 量子ビットの量子状態と同様に、2n2^n 要素の列ベクトルで表すことができ、 エルミート転置 ⟨ψ∣\bra{\psi} および 内積 ⟨ϕ∣ψ⟩\braket{\phi|\psi} や 外積 ∣ψ⟩⟨ϕ∣\ket{\psi}\bra{\phi} も同様に定義できます。
∣ψ⟩=a0∣0...0⟩n+a1∣10...0⟩n+...+a2n−1∣1...1⟩n=(a0⋮a2n−1)\ket{\psi} = a_0\ket{0...0}_n + a_1\ket{10...0}_n + ... + a_{2^n-1}\ket{1...1}_n = \begin{pmatrix} a_0 \\ \vdots \\ a_{2^n - 1} \end{pmatrix}
  • nn 量子ビットの場合、単位行列 II は次式のように変形できます。
I=∣0⟩⟨0∣+∣1⟩⟨1∣+⋯+∣2n−1⟩⟨2n−1∣I = \ket{0}\bra{0} + \ket{1}\bra{1} + \cdots + \ket{2^n-1}\bra{2^n-1}

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