B7: Reflection Operator III

実行時間制限:3 秒

メモリ制限:512 MiB

配点:300点

問題文

整数 nn と実数 T0, T1, , Tn1T_0,\ T_1,\ \ldots,\ T_{n-1} が入力として与えられる。 次式の行列 AA で定義される操作を nn 量子ビットをもつ量子回路 qc\mathrm{qc} 上に実装せよ。

A=2ψψIA = 2 \ket{\psi}\bra{\psi} - I

ただし、 II2n×2n2^n \times 2^n の単位行列とし、ψ\ket{\psi} は次式で定義される。

ψ=(cosT00+sinT01)(cosT10+sinT11)(cosTn10+sinTn11)\ket{\psi} = (\cos T_0 \ket{0} + \sin T_0\ket{1}) (\cos T_1\ket{0} + \sin T_1\ket{1}) \ldots (\cos T_{n-1} \ket{0} + \sin T_{n-1} \ket{1})

制約

  • 2n102 \leq n \leq 10
  • π<Tiπ- \pi \lt T_i \leq \pi
  • グローバル位相 は問わない。
  • 提出されるコードは次のフォーマットにしたがうこと
from qiskit import QuantumCircuit
 
 
def solve(n: int, T: list[float]) -> QuantumCircuit:
    qc = QuantumCircuit(n)
    # Write your code here:
 
    return qc

ヒント

開く
  • 次のようにして、量子ゲートの逆ゲートや量子回路の逆回路を適用できます。
qc.compose(sub_qc().inverse(), inplace=True)
# def sub_qc() -> QuantumCircuit

解答を提出するにはログインしてください。