問題文
n を正の整数とする。非負整数 k に対し、QFT(k) を次式で定義する。
QFT(k)=2n10≤a<2n∑ωak∣a⟩
ここで、ω は
ω=exp(2n2πi)
とする。
整数 n, kconst が入力として与えられるので、次の条件を満たすオラクル O を、n 量子ビットをもつ量子回路 qc 上に実装せよ。
0≤k<2n を満たす任意の整数 k に対して
QFT(k)OQFT(k′)
ただし、0≤k′<2n は以下の式を満たす必要がある。
ωk′=ωkconstωk
制約
- 2≤n≤10
- 0≤kconst<2n
- 量子回路の 深さ は 1 を超えてはならない。
- 整数は リトルエンディアン にしたがってエンコードすること
- グローバル位相 は問わない。
- 提出されるコードは次のフォーマットにしたがうこと
from qiskit import QuantumCircuit
def solve(n: int, k_const: int) -> QuantumCircuit:
qc = QuantumCircuit(n)
# Write your code here:
return qc
入力例
- n=2:
実装された量子回路 qc は次式を満たす。
41(∣0⟩+ωk∣1⟩+ω2k∣2⟩+ω3k∣3⟩)qc41(∣0⟩+ωk′∣1⟩+ω2k′∣2⟩+ω3k′∣3⟩)
ヒント
開く