解説
はじめに、以下の量子回路にて、必要なゲート操作を示します。
1番目の量子ビットに対して アダマール (Hadamard; H) ゲート を作用させます。
∣00⟩H(0)21(∣00⟩+∣10⟩)
このように、アダマールゲートを作用させることで、量子ビットを重ね合わせ状態にできます。
次に、 ∣10⟩ を ∣11⟩ に変化させるような操作を作用させる必要があります。そこで、1番目の量子ビットを制御ビットとし、2番目の量子ビットを標的ビットとする 制御 X (controlled-X; CX) ゲートを利用します。
制御 X ゲートによって、1番目の量子ビットが ∣1⟩ となる ∣10⟩ に対してのみ、2番目の量子ビットに X ゲートを作用させます。
21(∣00⟩+∣10⟩)CX(0,1)21(∣00⟩+∣11⟩)
最後に、1番目の量子ビットに X ゲートを作用させることにより、結果として問題を解くことができます。
21(∣00⟩+∣11⟩)X(0)21(∣10⟩+∣01⟩)
解答例
解答例は以下の通りです。
from qiskit import QuantumCircuit
def solve() -> QuantumCircuit:
qc = QuantumCircuit(2)
qc.h(0)
qc.cx(0, 1)
qc.x(0)
return qc
補足
- 本問の状態 21(∣10⟩+∣01⟩) では、片方の量子ビットを測定し、状態を観測すると、もう一方の量子ビットの状態が確定します。このような現象を量子もつれ (entanglement) と呼ぶことがあります。
- 複数の制御ビットをもつような量子ゲート(複数の制御ビットがすべて ∣1⟩ の状態の標的ビットのみに作用する)を実装することもできます。