問題文
整数 n, m, L, S0, S1, ⋯, Sn−1 と実数 θ が入力として与えられる。
0 以上 2n 未満の整数 x=x0+21x1+⋯2n−1xn−1 (xi∈{0,1}) に対して、関数 f(x) を次式で定義する。
f(x)=S0x0+S1x1+⋯+Sn−1xn−1
0 以上 2m 未満の任意の整数 x に対して
∣x⟩n∣0⟩mO{eiθ∣x⟩n∣0⟩meiθ∣x⟩n∣0⟩mf(x)=L (mod 2m)f(x)=L (mod 2m)
を満たす n+m 量子ビットオラクル O を実装せよ。
制約
- 1≤n,m≤9
- n+m≤10
- 0≤L<2m
- 0≤Sk<2m
- 0≤θ<2π
- 量子回路の 深さ は 100 を超えてはならない。
- 整数はリトルエンディアンにしたがってエンコードすること (例:∣100⟩=1=∣001⟩)
- グローバル位相 は問わない。
- 提出されるコードは次のフォーマットにしたがうこと