解説
すべての量子ビットに ゲートを作用させると、ゼロ状態 は に遷移することに注目します。すなわち、は、
と表現できます。 また、 ゲートの性質から
が成立することと、随伴行列の性質から
が成立することを利用すると、 は以下のように変形できます。
よって、全ての量子ビットに ゲートを作用させてから、B4の回路を実装し、再度全ての量子ビットに ゲートを作用させることでこの問題を解くことができます。
の場合の回路図は、以下の通りです。回路図内のReflect_B4
は、B4の回路を示しています。

解答例
解答例は以下の通りです。
from qiskit import QuantumCircuit
from qiskit.circuit.library import ZGate
def reflect(n: int) -> QuantumCircuit:
qc = QuantumCircuit(n)
qc.x(range(n))
qc.append(ZGate().control(n - 1), range(n))
qc.x(range(n))
return qc
def solve(n: int) -> QuantumCircuit:
qc = QuantumCircuit(n)
qc.h(range(n))
qc.compose(reflect(n), inplace=True)
qc.h(range(n))
return qc