問題文
整数 と 実数 、中身のわからない ビット量子ゲート と ビットパラメトリック量子ゲート が入力として与えられる。
あるベクトル が存在して、次の2つが成り立つことがわかっている。
量子ゲート と を用いて、量子状態 を作り出す操作 を 量子ビットをもつ量子回路 上に実装せよ。
ただし、許容誤差を とし、操作 は を満たさなければならない。
制約
- の作用回数は を超えてはならない。(超えた場合には DLE (depth limit exceeded) エラーを表示する)
- グローバル位相 は問わない。
- 提出されるコードは次のフォーマットにしたがうこと
from qiskit import QuantumCircuit
"""
You can apply U and R as follows:
qc.compose(U(), inplace=True)
qc.compose(R(theta), inplace=True)
"""
def solve(n: int, P: float, U, R) -> QuantumCircuit:
qc = QuantumCircuit(n)
# Write your code here:
return qc
ヒント
開く
- 量子ゲート と の逆ゲートを利用することも可能です。
qc.compose(U().inverse(), inplace=True)
qc.compose(R(theta).inverse(), inplace=True)