複数量子ビット
状態ベクトル表示
複数の量子ビットの可視化
複数の量子ビットを使うと、たくさんの状態を表すことができます。 たとえば 2 量子ビットを並べると、それぞれの量子ビットは \(|0\rangle\) および \(|1\rangle\) の状態を持つことができるため、その組合わせは次の 4 通りになります。
- \(|0\rangle\) と \(|0\rangle\)
- \(|0\rangle\) と \(|1\rangle\)
- \(|1\rangle\) と \(|0\rangle\)
- \(|1\rangle\) と \(|1\rangle\)
スペースを節約するために、\(|0\rangle\) と \(|0\rangle\) のように量子ビットを並べたものを \(|00\rangle\) とまとめて書くことにしましょう。 すると、先ほどの 4 通りは次のように書けます。
- \(|0\rangle\) と \(|0\rangle\) → \(|00\rangle\)
- \(|0\rangle\) と \(|1\rangle\) → \(|01\rangle\)
- \(|1\rangle\) と \(|0\rangle\) → \(|10\rangle\)
- \(|1\rangle\) と \(|1\rangle\) → \(|11\rangle\)
ここで、書き直した中身の数字を 2 進数として見てみます。 すると、先ほどの 4 通りはさらに次のように書き換えることができます。
- \(|0\rangle\) と \(|0\rangle\) → \(|00\rangle\) (2 進数) → \(|0\rangle\) (10 進数)
- \(|0\rangle\) と \(|1\rangle\) → \(|01\rangle\) (2 進数) → \(|1\rangle\) (10 進数)
- \(|1\rangle\) と \(|0\rangle\) → \(|10\rangle\) (2 進数) → \(|2\rangle\) (10 進数)
- \(|1\rangle\) と \(|1\rangle\) → \(|11\rangle\) (2 進数) → \(|3\rangle\) (10 進数)
つまり、2 量子ビット使うと \(|0\rangle\), \(|1\rangle\), \(|2\rangle\), \(|3\rangle\) という 4 つの状態を表すことができます。 これは、Qni の状態ベクトル表示では次のように 4 つの円のうち、どれか 1 つを塗り潰した状態として表せます。
さらに 3 量子ビットに増やすと円の数はどうなるでしょうか? 1 量子ビットでは円が 2 つ、2 量子ビットでは円が 4 つだったので、単純に円 6 個と考えるのは間違いです。 先ほどと同様に 3 桁の 2 進数を考えると、3 量子ビットでは \(|0\rangle\) から \(|7\rangle\) まで 8 通りの状態を表すことができます。 つまり、3 量子ビットを状態ベクトルとして表示すると丸が 8 個になります。
このようにビット数を増やすと表せる状態 (数) が倍々になっていく現象は、実は古典ビットでもまったく同じです。 古典ビットは 0 と 1 の値を持つので、3 桁の 2 進数で考えると 0 から 7 まで 8 通りの数を表せるからです。 しかし複数の量子ビットでは、次に紹介するように 1 量子ビットの場合と同じく重ね合わせ状態を持つことができるという大きな違いがあります。