解説
各量子ビットごとに、 ∣0⟩ から cosTi∣0⟩+sinTi∣1⟩ を作り出す操作を実装すればよいです。
ここで、 Ry(θ) ゲートを ∣0⟩ に作用させると、 cos2θ∣0⟩+sin2θ∣1⟩ になります。
よって、各量子ビットごとに θ=2Ti として Ry(θ) ゲートを作用させることでこの問題を解くことができます。
n=3, (T0,T1,T2)=(π/6,π/3,π/2) の場合の回路図は、以下の通りです。
解答例
解答例は以下の通りです。
from qiskit import QuantumCircuit
def solve(n: int, T: list[float]) -> QuantumCircuit:
qc = QuantumCircuit(n)
for i in range(n):
qc.ry(T[i] * 2, i)
return qc