B5: Modular Arithmetic I

実行時間制限:3 秒

メモリ制限:512 MiB

配点:600点

問題文

整数 nn, aa, LL が入力として与えられる。

次の条件を満たすオラクル OO を、n+1n+1 量子ビットをもつ量子回路 qc\mathrm{qc} 上に実装せよ。

0k<L0 \leq k < L を満たす任意の整数 kk に対して

kn+1O(k+a) mod Ln+1\ket{k}_{n+1} \xrightarrow{O} \ket{(k + a)\ \text{mod} \ L}_{n+1}

制約

  • 1n101 \leq n \leq 10
  • 0a<L2n0 \leq a < L \leq 2^n
  • グローバル位相 は問わない。
  • 整数は リトルエンディアン にしたがってエンコードすること
  • 提出されるコードは次のフォーマットにしたがうこと
from qiskit import QuantumCircuit
 
 
def solve(n: int, a: int, L: int) -> QuantumCircuit:
    qc = QuantumCircuit(n + 1)
    # Write your code here:
 
    return qc

ヒント

開く
  • B4 の回路をうまく利用できないか考えてみましょう。
  • 必要に応じて 量子ビット を追加することができます。

解答を提出するにはログインしてください。