A5: Minus Oracle

実行時間制限:3 秒

メモリ制限:512 MiB

配点:400点

問題文

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

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

0k<2n0 \leq k < 2^n を満たす任意の整数 kk に対して

knOk mod 2nn\ket{k}_n \xrightarrow{O} \ket{- k \ \text{mod} \ 2^n}_n

ただし、k mod 2n- k \ \text{mod} \ 2^n は、0x<2n0 \leq x < 2^nk+xk + x2n2^n の倍数となるような xx を意味する。

制約

  • 1n101 \leq n \leq 10
  • 量子回路の 深さ3030 を超えてはならない。
  • 整数は リトルエンディアン にしたがってエンコードすること
  • グローバル位相 は問わない。
  • 提出されるコードは次のフォーマットにしたがうこと
from qiskit import QuantumCircuit
 
 
def solve(n: int) -> QuantumCircuit:
    qc = QuantumCircuit(n)
    # Write your code here:
 
    return qc

ヒント

開く

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