【累乗の逆】むかし数学で習った「対数」を超やさしく解説【log】

  • このエントリーをはてなブックマークに追加
  • Pocket

こんにちは。タクマ™ [@suwaru_blog] です。

プログラムの計算時間を評価するときなどに「対数」という言葉がでてきます。
だいたい「累乗」という言葉とセットででてきます。

大きい累乗は指数的爆発が起きやすい…と以前説明しました。
そもそも大きい累乗を計算するのは大変です。

対数を使うと大きい累乗計算を簡略化できたりして便利です。
今回はまず「対数の基礎」を説明します!

10 を底とする対数

対数とは

100000 という数字の 0 の個数は 5 ですね。これは、

  • 100000 の「対数」を求めると 5
  • 100000 の「対数」を取ると 5
  • 100000 の「対数」を得ると 5
  • 100000 の「対数」を計算すると 5

…といった色々な言い方ができます。

たとえば 100000 の対数は 5、100 の対数は 2、1000 の対数は 3 といえます。
10000000000000000 なら、その対数は 16 です。

巨大な数字はパっと見だと何桁か分からないですが、対数なら小さい数字で表現できます。
つまり巨大な数字は対数を取ると扱いやすくなるといえます。

底 (基数) とは

もう少し正確に対数を表現してみます。

  • 1000 の対数は 3 である
    • 10 を「」として 1000 の対数を取ると 3 になる
      • 10 の 3 乗 は 1000 である

…と言うことができます。

」とは「どんな数字を 3 乗したら 1000 になる?」を聞いています。
※ 底は「基数」と呼ばれることもあります。

つまり「1000 は 10 の 何乗か?」を考えればよいので、
1000 に 0 が何個あるのか注目していたわけです。

底 (基数) をもっと深く知りたい方は

対数を log 表記する

次の 2 つの文は同じことを言っています。

  • 10 の 5 乗は 100000 になる
  • 10 を底として 100000 の対数を取ると 5 になる

累乗と対数は逆の計算方法をとっているのです。

累乗と対数は逆の関係

累乗と対数の関係性を説明します。

  • 累乗
    • 「指定した回数だけ掛け算を繰り返す」計算
    • 10 の 5 乗は 10^5 (10 の 5 乗) と表記する
      • 10^5 の計算結果は 100000
  • 対数
    • 「掛け算を何回繰り返してその数字が作られたのかを調べる」計算
    • 100000 の対数は log[10]100000 (ログ 10 万) と表記する
      • log[10]10000 の計算結果は 5

対数は英語で logarithm (ロガリスム) なので log[10]10000 のように表記されます。
対数はあくまで「累乗の逆」とだけ意識しておけば大丈夫です。

対数クイズ

log[10]1000 の値はいくつ?

log[10]1000 の値は 3 です。
逆に 10^3 の値は 1000 になります。

log[10]10^3 の値はいくつ?

10^3 は 1000 なので、log[10]1000 と全く同じです。答えは 3 です。

基数 10 の指数 3 がそのまま答えになっていることに注目してください。

log[10]N は「10 を何乗したら N になるか?」を聞いているので、
log[10]10^a にできるのであれば、その答えは a になるわけです。

10^log[10]1000 の値はいくつ?

まず log[10]1000log[10]10^3 のことでした。
そして log[10]10^3 の値は 3 でした。

なのでこの問題は 10^3 のことを聞いてるだけなので、答えは 1000 となります。
10^log[10]1000最後の 1000 がそのまま答えになっていることに注目してください。

10^log[10]N の答えは常に N になります。
対数の値を求めても、結局 10 の累乗計算で元通り…になっているのですね。

2 を底とする対数

ここまでは 10 を底とする対数の説明をしてきました。

  • 10^3
    • 1000 のこと
  • log[10]1000
    • 3 のこと

log[10]1000 は「底 10 を何乗したら 1000 になるか」を表していますが、
この考え方は 2 を底とする対数でも同じです。

  • 2^3
    • 8 のこと
  • log[2]8
    • 3 のこと

log[2]8 は「底 2 を何乗したら 8 になるか」を表しています。

対数クイズ

log[2]2 の値はいくつ?

log[2]2 の値は 1 です。
逆に 2^1 の値は 2 になります。

log[2]256 の値はいくつ?

log[2]256 の値は 8 です。
逆に 2^8 の値は 256 になります。

指数法則と対数

10^a * 10^b = 10^a+b とできることを「指数法則」といいます。

具体例

指数法則の例をあげると 10^2 * 10^3 = 10^5 のようになります。答えは 100000 です。
指数 2 と 指数 3 の足し算が行われています。

そして指数を得るには、対数を得ればよいことになりますね。

  • 100 * 1000 は 100000
    • 累乗を使うと 10^2 * 10^3 で表現できる
    • 対数をとると log[10]2log[10]3 で表現できる
      • 指数法則から log[10]2 + log[10]3 の足し算が可能
        • log[10]5 とは 10^5 のこと
        • これを「対数の逆をとる」という

100 * 1000 という掛け算を「指数の足し算10^2+3 に変換」しているのですね。

10^5 の計算結果はもちろん 100000 ですが、
数が大きくなるので 10^5 のままにしておくことは多いです。

対数のメリットは「掛け算を指数の足し算に変換できること」だと思って大丈夫です。

対数を使って指数法則を一般化する

先ほどの具体例を一般化すると log[10](A * B) = log[10]A + log[10]B になります。

  • A * B
    • 対数をとると log[10]Alog[10]B で表現できる
      • 指数法則から log[10]A + log[10]B の足し算が可能
        • これを「対数の逆をとる」という

底が書かれていない対数 (logN)

よく使う「底」はしばしば省略されます。※ 通常 10 の底が省略されます。
例えば log[10]5log 5 と書かれることがあるので覚えておきましょう。

関連記事

次回

前回

お仕事ください!

僕が代表を務める 株式会社 EeeeG では Web 制作・システム開発・マーケティング相談を行っています。
なにかお困りごとがあれば、Twitter DM や Web サイトからお気軽にご相談ください。

カテゴリ「CS」の最新記事

最新記事

コメント

  1. KN より:

    対数の解説、とてもわかりやすかったです!
    こむずかしいことを平易に表現していただき、大変ありがたいです!

    一点、
    文中の以下の 10000 は 100000 の間違いではないかと思うのですが、
    いかがでしょうか?

    10000 という数字の 0 の個数は 5 ですね。これは、

    10000 の「対数」を求めると 5
    10000 の「対数」を取ると 5
    10000 の「対数」を得ると 5
    10000 の「対数」を計算すると 5
    …といった色々な言い方ができます。

    たとえば 10000 の対数は 5、

    ご確認ください。

    1. タクマ™ より:

      ご指摘ありがとうございます!
      確かに 0 が足りていませんでした。。。
      記事を修正いたしました。今後とも当ブログをよろしくお願いします!

コメントを残す

*