解説
はじめに、以下の量子回路にて、必要なゲート操作を示します。

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