A5: Minus One Oracle

実行時間制限:3 秒

メモリ制限:512 MiB

配点:300点

問題文

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

0x<2n0 \leq x < 2^n を満たす任意の整数 xx に対して、次式の操作を nn 量子ビットをもつ量子回路 qc\mathrm{qc} 上に実装せよ。

xqc(x1)mod2n\begin{equation} \ket{x} \xrightarrow{\mathrm{qc}} \ket{(x-1) \bmod {2^n}} \nonumber \end{equation}

ただし、1mod2n=2n1-1 \bmod {2^n} = 2^n - 1 とする。

制約

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

ヒント

開く
  • xqc(x+1)mod2n\ket{x} \xrightarrow{\mathrm{qc}} \ket{(x+1) \bmod {2^n}} の逆演算を利用することができます。

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