A7: Zeta / Moebius Transform II

実行時間制限:3 秒

メモリ制限:512 MiB

配点:300点

問題文

整数 nn が入力として与えられる。

[n]={1,2,⋯ ,n}[n] = \{1, 2, \cdots, n\} とし、[n][n] の部分集合 SS に対して量子状態 ∣S⟩\ket{S} を以下の式で定義する。

∣S⟩=∣∑s∈S2s−1⟩\begin{equation} \ket{S} = \ket{\textstyle \sum_{s \in S} 2^{s - 1}} \nonumber \end{equation}

集合 SS の要素数を ∣S∣|S| で表すとき、次式の操作を 2n2n 量子ビットをもつ量子回路 qc\mathrm{qc} 上に実装せよ。

∑S⊆[n]aS∣S⟩n∣0⟩n→qc13n∑S⊆T⊆[n]aT∣S⟩n∣0⟩n+13n∑T⊆S⊆[n](−1)(∣S∣−∣T∣)aT∣S⟩n∣2n−1⟩n+∑i=12n−2∑S⊆[n]bS,i∣S⟩n∣i⟩n\begin{align} \sum_{S \subseteq [n]} a_S \ket{S}_n \ket{0}_n \xrightarrow{\mathrm{qc}} &\sqrt{\frac{1}{3^n}} \sum_{S \subseteq T \subseteq [n]} a_T \ket{S}_n \ket{0}_n \nonumber\\ &+ \sqrt{\frac{1}{3^n}} \sum_{T \subseteq S \subseteq [n]} (-1)^{(|S| - |T|)} a_T \ket{S}_n \ket{2^n - 1}_n\nonumber\\ &+ \sum_{i = 1}^{2^n - 2} \sum_{S \subseteq [n]} b_{S, i} \ket{S}_n \ket{i}_n\nonumber\\ \end{align}

ただし、aSa_S は状態 ∣S⟩n∣0⟩n\ket{S}_n\ket{0}_n の複素振幅を、bS,ib_{S, i} は状態 ∣S⟩n∣i⟩n\ket{S}_n \ket{i}_n の任意の複素振幅を表す。(値は問わない)

制約

  • 1≤n≤51 \leq n \leq 5
  • 量子回路の 深さ は 88 を超えてはならない。
  • グローバル位相 は問わない。
  • 提出されるコードは次のフォーマットにしたがうこと
from qiskit import QuantumCircuit
 
 
def solve(n: int) -> QuantumCircuit:
    qc = QuantumCircuit(2 * n)
    # Write your code here:
 
    return qc

入力例

  • n=1n = 1: 実装された量子回路 qc\mathrm{qc} は次式を満たす。
a0∣00⟩+a1∣10⟩→qc13{(a0+a1)∣00⟩+a1∣10⟩+a0∣01⟩−(a0−a1)∣11⟩}\begin{equation} a_0 \ket {00} + a_1 \ket {10} \xrightarrow{\mathrm{qc}} \frac{1}{\sqrt{3}} \lbrace (a_0 + a_1) \ket{00} + a_1 \ket{10} + a_0 \ket{01} - (a_0 -a_1) \ket{11} \rbrace \nonumber \end{equation}

ヒント

開く
  • [n][n] の部分集合 A,BA, B について、「 A⊆BA \subseteq B 」は「任意の S∈[n]S \in [n] に対し A∩{S}⊆B∩{S}A \cap \lbrace S \rbrace \subseteq B \cap \lbrace S \rbrace 」と言い換えることができます。

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