問題文
整数 n, L が入力として与えられる。
測定時に状態 ∣0⟩, ∣1⟩, ... ∣L−1⟩ が等確率で観測され、かつその確率の総和が 1 であるような状態 ∣ψ⟩を作り出す操作を n 量子ビットをもつ量子回路 qc 上に実装せよ。
ただし、確率の総和の許容誤差を 5.0×10−3とし、回路の深さ は 1000 を超えてはならない。
より正確な問題文
ゼロ状態に qc を作用させた後の状態 ∣ψ⟩ を ai を状態 ∣i⟩ の複素振幅として、次式で定義する。
∣ψ⟩=i=0∑L−1ai∣i⟩
このとき、以下の条件を満たすような qc を構築せよ。
- ∣a0∣=∣a1∣=⋯=∣aL−1∣
- ∑i=0L−1∣ai∣2>1−5.0×10−3
ただし、回路の深さは 1000 を超えてはならない。
制約
- 1≤n≤10
- 1≤L≤2n
- 整数は リトルエンディアン にしたがってエンコードすること (例:∣100⟩=1=∣001⟩)
- 提出されるコードは次のフォーマットにしたがうこと
入力例
- n=3, L=3
次式の遷移を行う量子回路は条件を満たす。
∣000⟩qc31(∣000⟩+∣100⟩+∣010⟩)
ヒント
開く
- 問題 B4 の解答を利用して解くことができます。
solve
関数以外に任意の関数を定義することが認められます。