B1: Copy Oracle

実行時間制限:2 秒

メモリ制限:512 MiB

配点:100点

問題文

次式により定義される オラクル OO22 量子ビット x, yx,\ y をもつ量子回路 qc\mathrm{qc} 上に実装せよ。

xyOxyx\ket{x}\ket{y} \xrightarrow{O} \ket{x}\ket{y \oplus x}

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

制約

  • グローバル位相 の変化は問わない。
  • 提出されるコードは次のフォーマットにしたがうこと
from qiskit import QuantumCircuit, QuantumRegister
 
 
def solve() -> QuantumCircuit:
    x, y = QuantumRegister(1), QuantumRegister(1)
    qc = QuantumCircuit(x, y)
    # Write your code here:
 
    return qc

入力例

  • xy=12(00+10)\ket{x}\ket{y} = \frac{1}{\sqrt{2}} (\ket{00} + \ket{10})
    実装されたオラクル OO は次式の遷移を満たす。
xy=12(00+10)O12(00+11)\ket{x}\ket{y} = \frac{1}{\sqrt{2}} (\ket{00} + \ket{10}) \xrightarrow{O} \frac{1}{\sqrt{2}} (\ket{00} + \ket{11})

ヒント

開く
  • 次のようにして、量子ビット xx に何らかの量子ゲート gg を作用させることができます。
qc.g(x)

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