C5: Modular Arithmetic IV

実行時間制限:10 秒

メモリ制限:512 MiB

配点:600点

問題文

整数 nn, mm と互いに素な正の整数 aa, LL が入力として与えられる。

ゼロ状態から重ね合わせ状態 A\ket{A} を作り出す操作を n+2m+1n + 2m + 1 量子ビットをもつ量子回路 qc\mathrm{qc} 上に実装せよ。

重ね合わせ状態 A\ket{A} は次式で定義される。

An+2m+1=12nk=02n1knak mod L2m+1\ket{A}_{n+2m+1} = \frac{1}{\sqrt{2^n}} \sum_{k=0}^{2^n-1} \ket{k}_n \ket{a^k \ \text{mod} \ L}_{2m+1}

制約

  • 1n51 \leq n \leq 5
  • 1m51 \leq m \leq 5
  • 1a<L2m1 \leq a < L \leq 2^m
  • グローバル位相 は問わない。
  • 整数は リトルエンディアン にしたがってエンコードすること
  • 提出されるコードは次のフォーマットにしたがうこと
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

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