解説
ゼロ状態 にB3の回路を作用させると になることに注目します。
量子状態 を と表現するとき、
が成立することと随伴行列の性質より
が成立することから は以下のように変形できます。
よって、B3で実装した回路の逆回路を実装してから、B4の回路を実装し、B3の回路を実装することでこの問題を解くことができます。
の場合の回路図は、以下の通りです。回路図内のRotate_B3
はB3の回路を、Rotate_B3_dg
はB3の逆回路を、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 rotate(n: int, T: list[float]) -> QuantumCircuit:
qc = QuantumCircuit(n)
for i in range(n):
qc.ry(T[i] * 2, i)
return qc
def solve(n: int, T: list[float]) -> QuantumCircuit:
qc = QuantumCircuit(n)
qc.compose(rotate(n, T).inverse(), inplace=True)
qc.compose(reflect(n), inplace=True)
qc.compose(rotate(n, T), inplace=True)
return qc