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