らんだむな記憶

blogというものを体験してみようか!的なー

Qiskit (19) ― Deutsch-Jozsa アルゴリズム

前回の続き。$\oplus$ をここでは XOR と考えることにする。$x_1, x_2,\cdots, y_1, y_2, \cdots \in \{0,1\}$ とする時に、

\begin{align*}
\bigoplus_{i=1}^n x_i y_i \equiv \sum_{i=1}^n x_i y_i \mod2
\tag{1}
\end{align*}

が成立するのかを見たい。
まず、$n=1$ では明らかである。次に $n$ で成立するとする。この時、

\begin{align*}
\bigoplus_{i=1}^{n+1} x_i y_i &= \left(\bigoplus_{i=1}^n x_i y_i\right) \oplus x_{n+1}y_{n+1} \\
&= \left( \sum_{i=1}^n x_i y_i \mod 2 \right)\oplus x_{n+1}y_{n+1}
\tag{2}
\end{align*}

である。
$\bigoplus_{i=1}^n x_i y_i = 0$ とすると、仮定より $\sum_{i=1}^n x_i y_i = 2k$ と書ける。(2) 式右辺は $x_{n+1} = y_{n+1} = 1$ の時だけ 1 であり、それ以外では 0 である。これは $2k + x_{n+1} y_{n+1} \mod 2$ と一致する。よって、

\begin{align*}
\left( \sum_{i=1}^n x_i y_i \mod 2 \right)\oplus x_{n+1}y_{n+1} \equiv \sum_{i=1}^n x_i y_i + x_{n+1}y_{n+1} \mod 2
\tag{3}
\end{align*}

が成立する。
次に、$\bigoplus_{i=1}^n x_i y_i = 1$ とする。この時、仮定より $\sum_{i=1}^n x_i y_i = 2k + 1$ と書ける。(2) 式右辺は $x_{n+1} = y_{n+1} = 1$ の時だけ 0 であり、それ以外では 0 である。これは $2k + 1 + x_{n+1} y_{n+1} \mod 2$ と一致する。よって (3) 式の関係を得る。故に、一般の $n$ に対して (1) 式が成立することが分かった。

以上のもと、

\begin{align*}
(-1)^{\otimes_i x_i y_i} = (-1)^{\sum_i x_i y_i \mod 2} = (-1)^{\sum_i x_i y_i}
\end{align*}

が分かるので、Qiskit (18) - らんだむな記憶 のドット積のように書かれている部分は内積として理解しても問題ないことが分かった。

ここまで踏まえると、XOR がどうとかびくびくすることなく p.114 を終えられる。