B4: Reflection Operator I

実行時間制限:3 秒

メモリ制限:512 MiB

配点:200点

問題文

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

A=200IA = 2 \ket{0} \bra{0} - I

ただし、 II2n×2n2^n \times 2^n の単位行列を表す。

制約

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

入力例

  • n=2n=2: 行列 AA は、次式で表現される。
A=20000I=(1000010000100001)A = 2 \ket{00} \bra{00} - I = \begin{pmatrix} 1 & 0 & 0 & 0\\ 0 & -1 & 0 & 0\\ 0 & 0 & -1 & 0\\ 0 & 0 & 0 & -1 \end{pmatrix}

ヒント

開く
  • nn 量子ビットの量子状態 ψ\ket{\psi}11 量子ビットの量子状態と同様に、2n2^n 要素の列ベクトルで表すことができ、 随伴ψ\bra{\psi} および 内積ϕψ\braket{\phi|\psi} や 外積ψϕ\ket{\psi}\bra{\phi} も同様に定義できます。
ψ=a00...0n+a110...0n+...+a2n11...1n=(a0a2n1)\ket{\psi} = a_0\ket{0...0}_n + a_1\ket{10...0}_n + ... + a_{2^n-1}\ket{1...1}_n = \begin{pmatrix} a_0 \\ \vdots \\ a_{2^n - 1} \end{pmatrix}
  • nn 量子ビットの場合、単位行列 II は次式のように変形できます。
I=00+11++2n12n1I = \ket{0}\bra{0} + \ket{1}\bra{1} + \cdots + \ket{2^n-1}\bra{2^n-1}

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