B3: Controlled Constant Addition

実行時間制限:3 秒

メモリ制限:512 MiB

配点:300点

問題文

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

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

0k<2n0 \leq k < 2^n0c10 \leq c \leq 1 を満たす任意の整数の組 (k,c)(k,c) に対して

knc1O(k+ca)mod2nnc1\ket{k}_n \ket{c}_1 \xrightarrow{O} \ket{(k + ca) \bmod 2^n}_n \ket{c}_1

制約

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

ヒント

開く
  • まずは cc を除いた次のオラクルを考えてみましょう。
knO(k+a)mod2nn\ket{k}_n \xrightarrow{O} \ket{(k + a) \bmod 2^n}_n

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