A3: Controlled Gate II

実行時間制限:3 秒

メモリ制限:512 MiB

配点:200点

問題文

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

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

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

  • k=0k = 0 の場合
mknOmkn\ket{m} \ket{k}_n \xrightarrow{O} \ket{m} \ket{k}_n
  • k0k \neq 0 の場合
mknOm1kn\ket{m} \ket{k}_n \xrightarrow{O} \ket{m \oplus 1} \ket{k}_n

ただし、\oplus は排他的論理和を表す。

制約

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

ヒント

開く
  • A2の発想をうまく利用できないか考えてみましょう。

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