問題文
整数 n, m と互いに素な正の整数 a, L が入力として与えられる。
ゼロ状態から重ね合わせ状態 ∣A⟩ を作り出す操作を n+2m+1 量子ビットをもつ量子回路 qc 上に実装せよ。
重ね合わせ状態 ∣A⟩ は次式で定義される。
∣A⟩n+2m+1=2n1k=0∑2n−1∣k⟩n∣ak mod L⟩2m+1
制約
- 1≤n≤5
- 1≤m≤5
- 1≤a<L≤2m
- グローバル位相 は問わない。
- 整数は リトルエンディアン にしたがってエンコードすること
- 提出されるコードは次のフォーマットにしたがうこと
from qiskit import QuantumCircuit, QuantumRegister
def solve(n: int, m: int, a: int, L: int) -> QuantumCircuit:
x, y = QuantumRegister(n), QuantumRegister(2 * m + 1)
qc = QuantumCircuit(x, y)
# Write your code here:
return qc