問題文
整数 n, L が入力として与えられる。
測定時に状態 ∣0⟩, ∣1⟩, ... ∣L−1⟩ が等確率で観測され、かつその確率の総和が 0.5 より大きいような状態 ∣ψ⟩を作り出す操作を n 量子ビットをもつ量子回路 qc 上に実装せよ。
より正確な問題文
ゼロ状態に qc を作用させた後の状態 ∣ψ⟩ を ai を状態 ∣i⟩ の複素振幅として、次式で定義する。
∣ψ⟩=i=0∑2n−1ai∣i⟩
このとき、以下の条件を満たすような qc を構築せよ。
- ∣a0∣=∣a1∣=⋯=∣aL−1∣
- ∑i=0L−1∣ai∣2>0.5
制約
- 1≤n≤10
- 1≤L≤2n
- 整数は リトルエンディアン にしたがってエンコードすること
- 提出されるコードは次のフォーマットにしたがうこと
from qiskit import QuantumCircuit
def solve(n: int, L: int) -> QuantumCircuit:
qc = QuantumCircuit(n)
# Write your code here:
return qc
入力例
- n=3, L=3:
次式の遷移を行う量子回路は条件を満たす。
∣000⟩qc31(∣000⟩+∣100⟩+∣010⟩)=31(∣0⟩+∣1⟩+∣2⟩)