解説
オラクルの入力となる 量子ビット と の計算基底状態と、出力 の真理値表は次のようになります。
0 | 0 | 0 |
1 | 0 | 1 |
0 | 1 | 1 |
1 | 1 | 0 |
真理値表を注意深く観察すると、 の場合にのみ のビットが反転していることがわかります。
このような操作は を制御ビット、 を標的ビットとする制御 ゲート 1 を使うことで実現できます。
よって、制御 ゲートを使うことでこの問題を解くことができます。
解答例
解答例は以下の通りです。
from qiskit import QuantumCircuit, QuantumRegister
def solve() -> QuantumCircuit:
x, y = QuantumRegister(1), QuantumRegister(1)
qc = QuantumCircuit(x, y)
qc.cx(x, y)
return qc