問題文
整数 と オラクル が入力として与えられる。 以上 未満のある整数 が存在し、は2のべき のいずれかであることがわかっている。オラクル は を満たす任意の整数 に対して、次式を満たす。
ただし、 は排他的論理和を表す。
量子状態 から、測定時に 以上の確率で が観測されるような状態 を作り出す操作を量子回路 上に実装せよ。
より正確な問題文
量子状態 に を作用させた後の状態 を、 を状態 の複素振幅として次式で定義する。
このとき、次式の条件を満たすような を構築せよ。
制約
- 量子回路の深さは を超えてはならない。
- オラクル は深さ の量子回路として与えられる。
- 整数は リトルエンディアン にしたがってエンコードすること
- グローバル位相 は問わない。
- 提出されるコードは次のフォーマットにしたがうこと
from qiskit import QuantumCircuit
"""
You can apply oracle as follows:
qc.compose(o, inplace=True)
"""
def solve(n: int, o: QuantumCircuit) -> QuantumCircuit:
qc = QuantumCircuit(n)
# Write your code here:
return qc