【初心者必見】対数関数は指数関数の逆関数!新人エンジニアが知るべき数学の基礎

こんにちは。ゆうせいです。

数学と聞いただけで、思わず身構えてしまっていませんか?

学生時代に「サイン・コサイン・タンジェント」の呪文で挫折した経験がある方もいるかもしれませんね。でも、安心してください。エンジニアとしてプログラムを書いたり、アルゴリズムを学んだりするとき、実は中学・高校で習った数学の知識がとても役に立つのです。

今日は、その中でも特に重要な「対数関数(ログ)」について、新人エンジニアのあなたに向けてお話しします。

難しそうに聞こえる対数関数ですが、実は「指数関数の逆」という、とてもシンプルな関係にあるんですよ。この正体がわかれば、計算量やデータの扱い方がぐっと身近に感じられるはずです。

一緒に、数学の扉をもう一度開いてみましょう!

指数関数ってなに?(倍々ゲームの世界)

対数関数を理解するには、まずその相棒である「指数関数」を知る必要があります。

指数関数とは、ある数が何回掛け合わされるかを表すものです。たとえば、細菌が1時間ごとに分裂して2倍に増えていく様子を想像してみてください。

最初は1匹です。1時間後には2匹、2時間後には4匹、3時間後には8匹になりますね。

これを数式で表すと、2を掛け合わせる回数を x としたとき、増えた数 y は次のように書けます。

y = 2^x

ここで登場する「2」のことを「底(てい)」と呼び、右上の小さな文字「 x 」を「指数」と呼びます。

この式は、時間が経つにつれて爆発的に数が増えていく様子を表しています。これをグラフにすると、右側に行けば行くほど急激に上がっていく坂道のような形になります。

つまり、指数関数とは「成長のスピード」を表す道具だと思ってください。

対数関数ってなに?(「何回掛けた?」を探る探偵)

さて、ここからが本題の対数関数です。

先ほどの細菌の話を思い出してください。「3時間後に8匹になる」というのは、指数関数の計算でしたね。

では、逆にこう質問されたらどうでしょう?

「細菌が8匹になるには、何時間かかりますか?」

あなたはすぐに「3時間!」と答えるでしょう。実は、この答えを出す計算こそが「対数」なのです。

対数は英語で「Logarithm(ロガリズム)」と言い、数式では \log という記号を使います。先ほどの質問を数式にするとこうなります。

3 = \log_2 8

この式の意味を日本語で翻訳してみましょう。

「2を何回掛けたら8になりますか? 答えは3回です」

つまり、対数関数とは「結果の数字から、掛ける回数(時間)を逆算する道具」なのです。

言葉の式にすると、以下のようになります。

指数 = \log 底 真数

ここでいう「真数」とは、最終的な結果(さっきの例でいう8)のことです。

「逆関数」という最強のパートナー

ここで今回のテーマである「逆関数」についてお話しします。

指数関数と対数関数は、ちょうど「裏と表」の関係にあります。これを数学の言葉で「逆関数」と呼びます。

簡単なイメージで言うと、スマートフォンの「元に戻す(Undo)」ボタンのようなものです。

入力を出力に変えるのが指数関数なら、その出力を受け取って元の入力に戻すのが対数関数です。

具体的な数字で見てみましょう。

指数関数の世界では、3を入力すると8が出てきます。

2^3 = 8

対数関数の世界では、8を入力すると3が返ってきます。

\log_2 8 = 3

見事に元通りですね!

グラフを描くと、この二つは斜めの線( y = x )を鏡にして、ぴったりと重なり合う対称な形をしています。お互いがお互いを打ち消し合う、切っても切れない関係なのです。

エンジニアにとってのメリットとデメリット

では、なぜエンジニアがこんな数学を知っておく必要があるのでしょうか。メリットとデメリットを整理してみましょう。

メリット:巨大な数を扱えるようになる

対数の最大のメリットは、桁外れに大きな数を、扱いやすい小さな数に変換できることです。

たとえば、データ量が100万倍になったとしても、対数(底が10の場合)で考えれば、それは単なる「6」という数字になります。

\log_{10} 1000000 = 6

コンピュータの世界では、データ検索のアルゴリズムなどでこの考え方が頻繁に使われます。「バイナリサーチ(二分探索)」という手法は、データ量が2倍になっても、検索にかかる手間はプラス1回しか増えません。これはまさに対数の性質を利用しているのです。

計算量オーダーの議論でよく出てくる O(\log n) という表記は、「データが増えても計算時間はそれほど増えない、とても効率が良い状態」を意味しています。

デメリット:直感的にわかりにくい

一方でデメリットもあります。それは、人間の直感とズレやすいことです。

私たちは「数字が2倍になれば、量も2倍になる」と直線的に考えがちです。しかし、対数の世界では、数値が少し増えただけで、実際の中身は爆発的に増えていることがあります。

また、コンピュータで計算する場合、対数は「浮動小数点数」として扱われるため、わずかな誤差が出ることがあります。厳密な整数計算が必要な場面では注意が必要です。

まとめ

今日は、指数関数と対数関数の関係についてお話ししました。

ポイントをおさらいしましょう。

  • 指数関数は「倍々ゲーム」で急激に増える数を表す
  • 対数関数は「何回掛けたか?」を逆算する道具
  • この二つは「逆関数」という、裏と表の関係にある
  • エンジニアにとって、対数は「効率の良さ」を測る重要な物差しになる

「ログ」という言葉を見かけたら、「ああ、これは何かを逆算しているんだな」「巨大な数を扱いやすくしているんだな」と思い出してください。それだけで、コードや設計書を見る目が変わるはずです。

今後の学習の指針

ここまでの内容が理解できたら、次は実際に手を動かしてみることをおすすめします。

まずは、Pythonなどのプログラミング言語を使って、実際に計算させてみましょう。math ライブラリを使えば、math.log2(8) のようなコードですぐに結果を確認できます。

その次は、「アルゴリズムとデータ構造」の分野に進んでみてください。特に「二分探索木」や「ソートアルゴリズム」の解説を読むと、今日学んだ対数の考え方がどのように応用されているかが、パズルのピースがはまるように理解できるでしょう。

数学は、エンジニアの武器です。焦らず少しずつ、自分の道具箱に知識を増やしていってくださいね!

応援しています。

セイ・コンサルティング・グループの新人エンジニア研修のメニューへのリンク

投稿者プロフィール

山崎講師
山崎講師代表取締役
セイ・コンサルティング・グループ株式会社代表取締役。
岐阜県出身。
2000年創業、2004年会社設立。
IT企業向け人材育成研修歴業界歴20年以上。
すべての無駄を省いた費用対効果の高い「筋肉質」な研修を提供します!
この記事に間違い等ありましたらぜひお知らせください。

学生時代は趣味と実益を兼ねてリゾートバイトにいそしむ。長野県白馬村に始まり、志賀高原でのスキーインストラクター、沖縄石垣島、北海道トマム。高じてオーストラリアのゴールドコーストでツアーガイドなど。現在は野菜作りにはまっている。