【数学の罠】「log」の底は10かeか2か?文脈で見分けるエンジニアのための生存戦略
こんにちは。ゆうせいです。
「数式に って書いてあるけど、これ、底(てい)はいくつなの?」
この悩み、エンジニアなら一度は必ず通る道です。
教科書やウェブサイトによって、底が省略されているときの正解が「2」だったり「10」だったり、はたまた「 」だったり…。まるでルール無用の無法地帯に見えますよね。
でも安心してください。実はここには、その数式が使われている「業界(文脈)」によって、暗黙の了解とも言える「住み分け」が存在するのです。
今日は、新人エンジニアのみなさんが迷子にならないよう、この「省略された底」を一瞬で見分けるための判断基準(チートシート)を伝授します。
3つの派閥を知れば怖くない
底が省略されているとき、可能性は大きく分けて3つあります。
それぞれ「誰が」「どんなとき」に使っているかを見ていきましょう。
1. コンピュータ科学の世界:底は「2」
もしあなたが、アルゴリズムの計算量(オーダー記法)や、情報理論(ビット数)の話をしているなら、底は十中八九「2」です。
- 理由:コンピュータは0と1の「2進数」で動いているからです。
- キーワード:ソート、探索、二分木、ビット、情報量。
- 例:データ量が
のとき、二分探索の計算回数は
回(底は2)。
ITエンジニアにとって、一番馴染み深いのはこのパターンかもしれませんね。
2. 数学・物理・統計学の世界:底は「
」
もしあなたが、微積分、統計学、物理シミュレーション、そしてAI(ディープラーニング)の理論を読んでいるなら、底はほぼ間違いなく「 (ネイピア数)」です。
- 理由:微分したときに一番きれいな形になるのが
だからです。数学者や理論家は、計算が美しくなる
を標準(自然対数)として扱います。
- キーワード:微分、積分、正規分布、最尤推定、エントロピー(物理)、ロジスティック回帰。
- 記号のヒント:
と書かれていれば
確定ですが、単に
と書かれることも非常に多いので注意が必要です。
3. 高校数学・工学(測定)の世界:底は「10」
もしあなたが、高校の教科書を見直していたり、音響機器や化学のデータを扱っていたりするなら、底は「10」です。
- 理由:私たちは指が10本あるので、10進数を使っていますよね。桁数を数えるには10が一番便利だからです。これを「常用対数」と呼びます。
- キーワード:pH(酸性・アルカリ性)、デシベル(音の大きさ)、マグニチュード(地震)、桁数。
プログラミング言語の「罠」に注意!
ここが新人エンジニアにとって最大の落とし穴です。
「コンピュータは2進数だから、プログラミング言語で log() って書いたら、底は2だよね?」
そう思ってコードを書くと、バグります。
実は、Python、C言語、Java、JavaScriptなど、主要なプログラミング言語の標準ライブラリで log(x) と書いた場合、その底は「 (自然対数)」になることがほとんどです。
コンピュータの世界であっても、計算ライブラリを作ったのは「数学者」たちだからです。
- 底が
のとき:
log(x) - 底が 10 のとき:
log10(x) - 底が 2 のとき:
log2(x)
このように、関数名ではっきりと使い分けるのがエンジニアの鉄則です。
「省略されたら かもしれない」と疑って、必ずリファレンス(仕様書)を確認する癖をつけましょう。
まとめ:文脈という名の「空気」を読め
ここまで読んでいただき、ありがとうございます。
見分け方のコツ、掴めましたか?
最後に、簡単な判定フローチャートをまとめておきます。
- プログラミングのコード中ですか?
- はい
ほぼ
です(関数名を確認せよ)。
- はい
- アルゴリズムやデータ構造の話ですか?
- はい
ほぼ 2 です(ビットの世界)。
- はい
- 微分・積分・統計・AIの理論ですか?
- はい
ほぼ
です(数学の世界)。
- はい
- 音の大きさや地震、化学の話ですか?
- はい
ほぼ 10 です(実用の世界)。
- はい
迷ったら、「この式を使っている人は、数学者か? プログラマか? 実務家か?」と想像してみてください。それだけで、省略された数字が浮き上がって見えてくるはずです。
今後の学習の指針
底が2、10、 のどれであっても、実は「底の変換公式」を使えば、定数倍の違いしかありません。
次は、情報理論の基礎である「情報量(エントロピー)」の計算で、実際に を使って「このファイルは何ビットに圧縮できるか?」を計算してみると、ログの実感が湧いてきますよ。
それでは、また次回の記事でお会いしましょう!