A1: Generate Minus State

実行時間制限:3 秒

メモリ制限:512 MiB

配点:100点

Writer:PSL

解説

量子コンピュータでは「量子ゲート」という概念を用いて、量子ビットの状態を操作します。

今回の問題では、量子ゲートの一種である XX ゲートアダマール (Hadamard; HH) ゲート を量子ビットに作用させることで、ゼロ状態からマイナス状態への遷移を実現できます。

0X(0)1H(0)12(01)\begin{equation} \ket{0} \xrightarrow{X(0)} \ket{1} \xrightarrow{H(0)} \frac{1}{\sqrt{2}} (\ket{0} - \ket{1}) \end{equation}

この量子ビットを測定すると、計算基底状態 0\ket{0}1\ket{1} が等しい確率 1/21/2 で観測されます。(確率は状態の複素振幅の絶対値の二乗で表されます)

このような確率的な重ね合わせ状態は、古典コンピュータには無い量子コンピュータ特有の性質の一つです。

解答例

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

from qiskit import QuantumCircuit
 
 
def solve() -> QuantumCircuit:
    qc = QuantumCircuit(1)
 
    # Apply X gate to the 1st qubit (index 0)
    qc.x(0)
 
    # Apply Hadamard gate to the 1st qubit (index 0)
    qc.h(0)
 
    return qc

次のように記述することもできます。

from qiskit import QuantumCircuit
from qiskit.circuit.library import XGate, HGate
 
 
def solve() -> QuantumCircuit:
    qc = QuantumCircuit(1)
 
    qc.append(XGate(), [0])
 
    qc.append(HGate(), [0])
 
    return qc

補足

  • XX ゲートやアダマールゲート以外にも多くの量子ゲートが存在します。 それぞれの量子ゲートの意味や役割を理解しておくと、今後の問題を解く際に役立つかもしれません。