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