A4: Generate state 13(∣0⟩+∣1⟩+∣2⟩))\frac{1}{\sqrt{3}} (\ket{0} + \ket{1} + \ket{2})) I

実行時間制限:3 秒

メモリ制限:512 MiB

配点:200点

Writer:admin

解説

生成したい状態は 3つの計算基底状態 ∣00⟩, ∣10⟩, ∣01⟩\ket{00},\ \ket{10},\ \ket{01} の重ね合わせ状態です。

このような2のべき乗でない個数の計算基底状態の重ね合わせ状態は、制御アダマールゲート (controlled-H; CHCH) を利用して生成できます。

はじめに、11 ビット目にアダマールゲートを作用させます。

∣00⟩→H(0)12(∣00⟩+∣10⟩)\begin{equation} \ket{00} \xrightarrow{H(0)} \frac{1}{\sqrt{2}} (\ket{00} + \ket{10}) \end{equation}

次に、11 ビット目を制御ビット、22 ビット目を標的ビットとして制御アダマールゲートを作用させます。

12(∣00⟩+∣10⟩)→CH(0,1)12∣00⟩+12(∣10⟩+∣11⟩)\begin{equation} \frac{1}{\sqrt{2}} (\ket{00} + \ket{10}) \xrightarrow{CH(0, 1)} \frac{1}{\sqrt{2}} \ket{00} + \frac{1}{2}(\ket{10} + \ket{11}) \end{equation}

最後に、11 ビット目を標的ビット、22 ビット目を制御ビットとして制御 XX ゲートを作用させます。

12∣00⟩+12(∣10⟩+∣11⟩)→CX(1,0)12∣00⟩+12(∣10⟩+∣01⟩)\begin{equation} \frac{1}{\sqrt{2}} \ket{00} + \frac{1}{2}(\ket{10} + \ket{11}) \xrightarrow{CX(1, 0)} \frac{1}{\sqrt{2}} \ket{00} + \frac{1}{2}(\ket{10} + \ket{01}) \end{equation}

こうして、3つの計算基底状態 ∣00⟩, ∣10⟩, ∣01⟩\ket{00},\ \ket{10},\ \ket{01} の重ね合わせ状態が生成できました。

解答例

解答例は以下の通りです。

from qiskit import QuantumCircuit
 
def solve() -> QuantumCircuit:
    qc = QuantumCircuit(2)
 
    qc.h(0)
    qc.ch(0, 1)
    qc.cx(1, 0)
 
    return qc