1. 2量子ビットの状態 — 基底は4つ、振幅も4つ
古典の2ビットは 00・01・10・11 のどれか1つの値を取ります。量子ビット2個の状態は、この4通りを基底状態 |00⟩, |01⟩, |10⟩, |11⟩ として、その重ね合わせで表されます。つまり状態は4つの複素振幅 c00, c01, c10, c11 の組(複素4次元ベクトル)で、測定すると確率 |cij|² で結果 ij が得られます。
では、独立に用意した量子ビットAとBを「並べた」状態はどう計算するのか。答えはテンソル積(記号 ⊗)です。分配法則で展開するだけ — 各振幅のすべての組み合わせの積が、2量子ビットの振幅になります。
|ψ⟩ ⊗ |φ⟩ = (a0|0⟩ + a1|1⟩) ⊗ (b0|0⟩ + b1|1⟩)
= a0b0|00⟩ + a0b1|01⟩ + a1b0|10⟩ + a1b1|11⟩
2振幅 × 2振幅 → 4振幅。3個なら 2×2×2 = 8振幅、n個なら 2n 振幅
状態空間の組み立て — テンソル積で 2×2 = 4 振幅
各量子ビットは |ψ⟩ = cos(θ/2)|0⟩ + sin(θ/2)|1⟩。右の4本の振幅は、左の2本×2本の全組み合わせの積で、流れる光の線が「どの2つを掛けたか」を示します。θA や θB を動かすと、4振幅が連動して変わることを確かめてください(確率 = 振幅の2乗、合計は常に1)。
POINT — 積状態は「見かけ4つ、実質2+2」
上のデモの状態は常に |ψ⟩⊗|φ⟩ の形に書ける積状態。4つの振幅があるように見えて、実はθAとθBの2つのツマミだけで決まっている。逆に言うと、積の形に分解できない状態(4振幅が独立に動く状態)が存在する — それが次回の主役「量子もつれ」だ。
2. n量子ビット = 2ⁿ 個の複素数 — 指数爆発
テンソル積を繰り返すと、n量子ビットの状態は 2n 個の基底の重ね合わせになります。この状態を古典コンピュータで真似(シミュレート)しようとすると、2n 個の複素数(倍精度で1個16バイト)を丸ごとメモリに置いて更新し続ける必要があります。
|ψ⟩ = c00…0|00…0⟩ + c00…1|00…1⟩ + … + c11…1|11…1⟩
項の数は 2n。n量子ビットの状態は 2n 個の複素振幅(Σ|c|² = 1)で決まる
スライダーを動かして、必要なメモリがどれほど急激に増えるかを見てください。量子ビットを1個足すたびに、必要な複素数の個数は2倍になります。
指数爆発メーター — n量子ビットを古典メモリで真似すると
縦軸は対数目盛(1目盛りごとに約1000倍)。対数で見ると直線になるのが指数関数の特徴です。n=30 でノートPCのメモリ16GBを使い切り、n≈48 でスパコン「富岳」の全メモリ、n≈74 で全世界のストレージを食い尽くす計算に。グラフは n=60 まで外挿しています。
POINT — シミュレーション困難こそ量子優位の源泉
たった50個の量子ビットの状態変化を古典計算機で忠実に追うことは、世界最大級のスパコンでも手に負えない。裏返せば、量子コンピュータは古典計算機には真似できない規模の状態空間を自然に保持・変換しているということ。これが量子計算の潜在能力の源泉だ。
注意 — 2ⁿ 個の答えが「読み出せる」わけではない
状態が 2n 個の振幅を持っていても、測定で得られるのは n ビットの結果1つだけ。振幅を全部読み出す方法はない。だから量子アルゴリズムは、干渉を設計して「正解の振幅だけを増幅してから測る」という工夫をする(第8回・第9回で詳しく)。
3. CNOTゲート — 2つの量子ビットをつなぐ
1量子ビットゲート(X・H・Z など)を各ビットに掛けるだけでは、状態は永遠に積状態のまま。量子ビット同士を相互作用させるゲートが必要です。その代表が CNOT(制御NOT)ゲート。「制御ビットが |1⟩ のときだけ、標的ビットを反転する」という条件つきNOTです。
CNOT |c⟩|t⟩ = |c⟩|t ⊕ c⟩
c = 制御、t = 標的、⊕ はXOR。振幅で見ると |10⟩ と |11⟩ の振幅を入れ替える操作
| 入力(制御・標的) | 出力(制御・標的) | 何が起きたか |
| |00⟩ | |00⟩ | 制御が0 → 何もしない |
| |01⟩ | |01⟩ | 制御が0 → 何もしない |
| |10⟩ | |11⟩ | 制御が1 → 標的を反転 |
| |11⟩ | |10⟩ | 制御が1 → 標的を反転 |
面白いのは、制御ビットが重ね合わせのとき。「何もしない」と「反転する」が振幅の世界で同時に走り、出力は積に分解できない状態 — もつれ状態 — になります。下のデモで4パターンの入力と重ね合わせ入力を切り替えて、振幅の流れを追ってください。
CNOTゲート — 振幅の流れを見る(複素4次元ベクトルを正確に計算)
上が回路図(●=制御、⊕=標的)、下が入力と出力の振幅。灰色の矢印は「そのまま通る」流れ、オレンジの矢印は |10⟩⇄|11⟩ の入れ替え。重ね合わせ入力では出力が (|00⟩+|11⟩)/√2 になり、どんな a⊗b の形にも分解できない「もつれ」が生まれます。
POINT — CNOT+1量子ビットゲートで万能
任意のn量子ビットの計算(ユニタリ変換)は、1量子ビットゲートとCNOTの組み合わせだけで好きな精度で構成できることが証明されている。古典回路のNANDに相当する「万能部品セット」であり、実機のハードウェアもまずこの2種類の実装品質を競っている。
4. まとめ
- テンソル積 ⊗:独立な量子ビットを並べた状態は振幅の全組み合わせの積。2個で4振幅、n個で 2n 振幅。
- 積状態:|ψ⟩⊗|φ⟩ の形に書ける状態。見かけの振幅は多くても、実質は各量子ビットの独立なパラメータだけ。
- 指数爆発:n=30で16GB、n=50でスパコン超え。古典シミュレーションの困難さが量子優位の源泉。ただし測定で読めるのはnビットだけ。
- CNOT:制御が|1⟩のときだけ標的を反転(|10⟩⇄|11⟩ の振幅交換)。重ね合わせた制御に作用させるともつれが生まれる。
一歩先へ — 「もつれ」への入り口
CNOTが作った (|00⟩+|11⟩)/√2 はベル状態と呼ばれ、2つの量子ビットが「どちらも単独では記述できない」奇妙な相関で結ばれている。アインシュタインが「不気味な遠隔作用」と呼んで疑ったこの現象こそ、次回のテーマ量子もつれだ。測定実験で相関の正体を確かめにいこう。