問題文
整数 n が入力として与えられる。
次式 の行列 A で定義される操作を、 n 量子ビットをもつ量子回路 qc 上に実装せよ。
A=2∣0⟩⟨0∣−I
ただし、 I は 2n×2n の単位行列を表す。
制約
- 2≤n≤10
- グローバル位相 は問わない。
- 提出されるコードは次のフォーマットにしたがうこと
from qiskit import QuantumCircuit
def solve(n: int) -> QuantumCircuit:
qc = QuantumCircuit(n)
# Write your code here:
return qc
入力例
- n=2:
行列 A は、次式で表現される。
A=2∣00⟩⟨00∣−I=10000−10000−10000−1
ヒント
開く
- n 量子ビットの量子状態 ∣ψ⟩ も 1 量子ビットの量子状態と同様に、2n 要素の列ベクトルで表すことができ、 随伴⟨ψ∣ および 内積⟨ϕ∣ψ⟩ や 外積∣ψ⟩⟨ϕ∣ も同様に定義できます。
∣ψ⟩=a0∣0...0⟩n+a1∣10...0⟩n+...+a2n−1∣1...1⟩n=a0⋮a2n−1
- n 量子ビットの場合、単位行列 I は次式のように変形できます。
I=∣0⟩⟨0∣+∣1⟩⟨1∣+⋯+∣2n−1⟩⟨2n−1∣