注意

これはこの解説のための自分用の補助資料で、理解した気になるのに必要な知識をメモしておくものです。

なお通すだけなら雰囲気で通せると思います。実際ぐぐりながらでDまでは通せた。

Q# 環境構築

難しい。私は諦めました。

構文はC系統なので qs-language-quick-reference.pdf を見ながら雰囲気でなんとかなる。 複雑な例としては公式のrepoのsamplesを。 syntax checkはonline compiler https://tio.run/#qs-coreでやればよいが、所与の形式だとentry pointの問題で動かない。

予備知識

qubitについて。 単一の独立したqubitは次のふたつの基底状態 $\ket{0}, \ket{1}$ の重ね合わせ$\alpha \ket{0} + \beta \ket{0}$ (ただし $\alpha^2 + \beta^2 = 1$)で表される。 特に基底状態を のように書いてできるような$\mathbb{C}$上の縦ベクトルとして見ることができる。

この$\ket{\phi}$はket ベクトルと呼ばれる。 bra ベクトル $\bra{\psi}$もある。 それぞれ縦ベクトルと横ベクトルに対応するので と書ける。なお(ベクトルとして)基底なので$i, j \in \{ 0, 1 \}$に対し$\bra{i} \cdot \ket{j} = 1 \iff i = j$が確認できる。 一般には関係$\ket{\psi}^{\dagger} = \bra{\psi}$ (ただし$\dagger$は随伴行列、つまり各点複素共役して転置) が成り立つ。 なので$\braket{\psi}{\phi} = \bra{\psi} \cdot \ket{\phi}$は内積$\beta^{\top}\alpha$と同じことを書いている。

同様にHadamard gate $H$などの種々のgatesは行列として見ることができる。

参考