問題文
整数 n, s, t が入力として与えられる。
以下の条件を満たすオラクル O を、n+1 量子ビットをもつ量子回路 qc 上に実装せよ。
- 任意の s≤k<2n を満たす整数 k に対して
∣k⟩n+1O∣k−s⟩n+1
- 任意の 2n≤k<t を満たす整数 k に対して
∣k⟩n+1O∣k+2n+1−t⟩n+1
制約
- 1≤n≤10
- 0≤s<2n<t<2n+1
- グローバル位相 は問わない。
- 整数は リトルエンディアン にしたがってエンコードすること
- 提出されるコードは次のフォーマットにしたがうこと
from qiskit import QuantumCircuit
def solve(n: int, s: int, t: int) -> QuantumCircuit:
qc = QuantumCircuit(n + 1)
# Write your code here:
return qc
ヒント
開く
- B3 の回路をうまく利用できないか考えてみましょう。