量子プログラミングの設計図を読み解き、実際にコードを書いていく上で、オイラーの公式は避けて通れない不可欠な数学的基盤です。
量子コンピュータは、電子や光子の「回転(位相)」を利用して計算を行いますが、この複雑な回転操作を記述するために、高校で習う三角関数ではなく、指数関数を使います。
その変換を可能にするのが、オイラーの公式です。
\(e^{i\theta} = \cos \theta + i \sin \theta\)
本記事の目的は、この公式を「なんだかよく分からないが使う」という丸暗記の対象から解放し、量子プログラミングでなぜこの表現が必須なのかという核心を理解することです。
微分・積分などの前提知識が増えてしまうため、証明の計算などは全て省略し、量子プログラミングの設計・開発に必須の内容に特化します。
具体的には「指数関数 \(e\)」と「虚数 \(i\)」が組み合わさることで、いかに効率的に「回転」を表現し、量子ゲート操作を単純化できるのか、その仕組みを概念的に解説します。
第1章:オイラーの公式の概要
① オイラーの公式とは? 量子計算におけるメリット
前回の記事で学んだように、複素数を「長さ \(r\)」と「角度 \(\theta\)」で表現する極形式は、以下の三角関数を使って記述されました。
\(z = r (\cos \theta + i \sin \theta)\)
この括弧内の \(\cos \theta + i \sin \theta\) の部分、つまり「長さが 1 の回転」を記述する部分を、究極にシンプルな形式で表現し直したものが、オイラーの公式です。
\(e^{i\theta} = \cos \theta + i \sin \theta\)
- \(\mathbf{e}\): 自然対数の底(約 \(2.718…\))。自然現象における成長や減衰を表す定数です。
- \(\mathbf{i}\): 虚数単位(\(i^2 = -1\))。\(90^\circ\) の回転を意味する数です。
- \(\mathbf{\theta}\): 角度(位相)。複素数平面(ガウス平面)上での回転量です。
2つの公式を見比べると、ほとんど違いがないように見えます。
しかし、双方に共通して登場する \(\cos \theta + i \sin \theta\) の部分は、計算方法が異なるのです。
| 形式 | 演算ルール | 連続操作 (掛け算) |
|---|---|---|
| 極形式 | 三角関数ルール | 毎回加法定理が必要 |
| オイラー形式 | 指数関数ルール | \(\mathbf{e^A e^B = e^{A+B}}\) |
オイラーの公式の凄さは、量子計算における位相操作(回転)を、三角関数(\(\cos, \sin\))が持つ複雑な計算(和積・積和の公式など)を避けて、指数法則という最も扱いやすいルールに変換できる点にあります。
この変換により、連鎖的な回転を圧倒的に計算しやすくなります。
オイラーの公式は「数学史上最も美しい公式」と言われており、三角関数と指数関数を結びつける、数学界の至宝です。
② 極形式の指数関数表現:量子計算における回転の標準形
複素数の極形式 \(\mathbf{z = r (\cos \theta + i \sin \theta)}\) に、オイラーの公式 \(\mathbf{e^{i\theta} = \cos \theta + i \sin \theta}\) を代入すると、次のようになります。
\(\mathbf{z = r e^{i\theta}}\)
- 長さ \(r\): 量子状態の「大きさ」、つまり確率に直結する部分です。
- 指数 \(e^{i\theta}\): 量子状態の「向き」、つまり位相(回転)を司る部分です。
この指数関数表現(またはオイラー形式)が、量子力学や量子情報科学で確率振幅 \(\alpha\) や \(\beta\) を記述する際に使われる、最も基本的で扱いやすい形です。
至ってシンプルな形式ではありますが、複雑な量子ゲート操作(回転の連続)を、単に指数部分の角度 \(\theta\) の足し算・引き算だけで計算できるようになるのです。
第2章:指数関数で「回転」を扱える理由
① \(e\) と \(i\) が持つ不変の性質
オイラーの公式 \(\mathbf{e^{i\theta}}\) は、自然対数の底 \(e\) と虚数単位 \(i\) の二大要素の組み合わせによって成り立っています。
この二つの数が持つ「不変の性質」が、連続的な回転という現象を生み出すのです。
①-1. \(e\):連続的な成長(変化しない変化率)
数学的に見ると、関数 \(e^x\) は微分してもその形が変わらないという不変性を持っています。
この「変化の割合」が常に「その時点の値」と同じであるという性質が、連続的で滑らかな変化を記述する土台となります。
この性質のため、\(e\) は、連続的な成長や減衰(例:利息の複利、原子の崩壊、人口増加)を記述する際の「自然な底」として使われます。
①-2. 虚数 \(i\) がもたらす \(90^\circ\) の不変操作
\(e\)(自然対数の底)と対を成すオイラーの公式のもう一つの構成要素は、虚数単位 \(i\) です。
前回記事の内容を復習すると、「\(i\) を掛けることは \(90^\circ\) の回転を意味する」でしたね。
- \(i^1 = i\)
- \(i^2 = -1\) (\(180^\circ\) 回転)
- \(i^3 = -i\) (\(270^\circ\) 回転)
- \(i^4 = 1\) (\(360^\circ\) 回転)
この \(i\) の性質も、自然対数の底 \(e\) と同様に「微分しても形が変わらない」という不変の性質と密接に関わっています。
①-3 \(e\) と \(i\) の本質的な結合
\(e\) が連続的な成長を記述する定数であるのに対し、\(i\) は純粋な回転を記述する定数です。
\(e\) の指数部分に \(i\) が掛かり \(\mathbf{e^{i\theta}}\) となることで、「連続的な成長」は「連続的な回転」へと変化します。
- \(\mathbf{e^x}\): 実軸上を前進/後退(成長/減衰)する動き
- \(\mathbf{e^{i\theta}}\): 複素数平面上を円周上で回転する動き
\(e\) と \(i\) の組み合わせは、「連続的な変化」と「回転」を結びつけています。
この結合こそが、三角関数が記述する円運動を、指数関数で置き換えるオイラーの公式そのものなのです。
② \(e^{i\theta}\) が「円」を描く仕組み
\(e\) と \(i\) の不変の性質を理解したところで、それらが結合した \(\mathbf{e^{i\theta}}\) が、なぜ複素数平面上で円運動(回転)を表現するのか、そのメカニズムを見ていきましょう。
この現象は、「連続的な変化を記述する指数法則」と「虚数 \(i\) の持つ周期的な回転操作」の連携によって生まれます。
②-1. 指数法則による回転の記述(操作的なメリット)
量子ゲートの連続操作を理論的に扱う上で、指数法則 \(\mathbf{e^A \cdot e^B = e^{A+B}}\) の単純さは大きなメリットとなります。
この法則をオイラーの公式に適用すると、連続的な回転(掛け算)が角度の足し算に変わります。
\(\mathbf{e^{i\theta_1} \cdot e^{i\theta_2} = e^{i(\theta_1 + \theta_2)}}\)
これは、一つの量子ゲート操作(角度 \(\theta_1\) の回転)の後に別の量子ゲート操作(角度 \(\theta_2\) の回転)を適用すると、全体の回転量が単に \(\theta_1 + \theta_2\) になることを意味します。
この計算の単純さが、量子プログラミングの設計を可能にしているのです。
②-2. 指数関数が円を描く理由(概念的なメカニズム)
\(e\) は「変化率が自分自身」という成長の性質を持っていますが、その指数部分に虚数 \(i\) が加わることで、成長の方向が絶えず\(90^\circ\) 曲げられ続けます。
- \(e^{\theta}\): 実軸上を一直線に成長(直線運動)
- \(e^{i\theta}\): 成長のベクトルが常に回転し、円周上を回り続ける(円運動)
この絶え間ない \(90^\circ\) の曲げ(\(i\) の作用)によって、ベクトルは原点から離れることなく、周期的に円(サイン・コサインの動き)を描き続けるのです。
まとめ
本記事で解説したオイラーの公式は、量子プログラミングにおいて「回転を記述するための変換ツール」として機能します。
| 要素 | 量子的な役割 |
|---|---|
| 複素数平面 | 量子状態(確率振幅)の空間 |
| 指数関数 \(e^{i\theta}\) | ユニタリ演算(量子ゲート操作)の標準形 |
| \(i\) の作用 | 連続的な成長を回転に変える(位相) |
| 指数法則 \(e^{A} \cdot e^{B}\) | 複数の量子ゲートの連続操作を単純化 |
量子プログラミングで使用する回転ゲート(例:\(R_x(\theta)\), \(R_y(\theta)\))は、全てこの \(\mathbf{e^{i\theta}}\) の原理に基づいて設計されています。
オイラーの公式を理解することは、これらのゲートが「なぜ回転を起こすのか」「なぜ指数関数で定義されているのか」を腑に落とし、自在に操作するための鍵となります。

コメント