問題文
整数 n が入力として与えられる。
[n]={1,2,⋯,n} とし、[n] の部分集合 S に対して量子状態 ∣S⟩ を以下の式で定義する。
∣S⟩=∣∑s∈S2s−1⟩
集合 S の要素数を ∣S∣ で表すとき、次式の操作を 2n 量子ビットをもつ量子回路 qc 上に実装せよ。
S⊆[n]∑aS∣S⟩n∣0⟩nqc3n1S⊆T⊆[n]∑aT∣S⟩n∣0⟩n+3n1T⊆S⊆[n]∑(−1)(∣S∣−∣T∣)aT∣S⟩n∣2n−1⟩n+i=1∑2n−2S⊆[n]∑bS,i∣S⟩n∣i⟩n
ただし、aS は状態 ∣S⟩n∣0⟩n の複素振幅を、bS,iは状態 ∣S⟩n∣i⟩n の任意の複素振幅を表す。(値は問わない)
制約
- 1≤n≤5
- 量子回路の 深さ は 8 を超えてはならない。
- グローバル位相 は問わない。
- 提出されるコードは次のフォーマットにしたがうこと
from qiskit import QuantumCircuit
def solve(n: int) -> QuantumCircuit:
qc = QuantumCircuit(2 * n)
# Write your code here:
return qc
入力例
- n=1:
実装された量子回路 qc は次式を満たす。
a0∣00⟩+a1∣10⟩qc31{(a0+a1)∣00⟩+a1∣10⟩+a0∣01⟩−(a0−a1)∣11⟩}
ヒント
開く
- [n] の部分集合 A,B について、「 A⊆B 」は「任意の S∈[n] に対し A∩{S}⊆B∩{S} 」と言い換えることができます。