B3: Generate State i(cosTi0+sinTi1)\bigotimes_i\lparen\cos{T_i}\ket{0}+\sin{T_i}\ket{1}\rparen

実行時間制限:3 秒

メモリ制限:512 MiB

配点:200点

Writer:Not_Leonian

解説

各量子ビットごとに、 0\ket{0} から cosTi0+sinTi1\cos T_i\ket{0} + \sin T_i\ket{1} を作り出す操作を実装すればよいです。

ここで、 Ry(θ)Ry(\theta) ゲートを 0\ket{0} に作用させると、 cosθ20+sinθ21\cos\frac{\theta}{2}\ket{0} + \sin\frac{\theta}{2}\ket{1} になります。

よって、各量子ビットごとに θ=2Ti\theta=2T_i として Ry(θ)Ry(\theta) ゲートを作用させることでこの問題を解くことができます。

n=3, (T0,T1,T2)=(π/6,π/3,π/2)n = 3,\ (T_0, T_1, T_2) = (\pi / 6, \pi / 3, \pi / 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