LoginSignup
5
1

More than 5 years have passed since last update.

オーダー記法でlogの基数を書かない理由

Posted at

アルゴリズムの効率を表現するのにオーダー記法というものが使われる。例えば「アルゴリズムAのオーダーは $O(n^2)$ だが、アルゴリズムBは $O(n\log n)$ なので B の方が効率的」みたいに言ったりする。

さて、このオーダー記法において対数 $\log$ がでてきたとき普通は基数を無視するが、それは何故か。

$\log_2$ の(基数が 2 の対数)値があるとする。これを $\log_{10}$ に変換してみよう。 $a=\log_2 k, b=\log_{10} k$ とすると $k = 10^b$ なので

\log_2 (10^b) = \log_2 k \\
b \log_2 10 = \log_2 k \\
b = \frac{\log_2 k}{\log_2 10} = \frac{a}{\log_2 10}

$\log_2 10$ は定数なので、要するに $b$ は $a$ の定数倍ということになる。オーダー記法では定数倍は無視するので、結局オーダー記法において基数は無視されることになる。という訳。

5
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
1