Skip to content

复习对数

对数含义

对数,英语叫做 logarithm,用来描述一个数是另一个数的多少次幂。

例如如果有 by = x,那么 logbx = y,就是幂运算的逆运算。其中:

常见对数的底

大O表示法中,经常会省略底数‼️

举个例子,假设算法的复杂度为 O(log2n) ,我们会直接表示为 O(logn),直接省略了底数 2.

原因:因为大O表示法关心的是算法的增长速率,而底数是多少不会影响增长的速率,底数的变化仅仅是一个常数因子的变化。

假设有 log2n 和 log10n,这两者之间的关系可以用一个公式:log10n = log2n / log210,进一步进行换算:log2n = log10n * log210,这里的log210 就是一个常数因子,在大O表示法中常数因子会被忽略,不会去关心常数。这也是为什么在大O表示法中会省略底数的原因。

对数相关计算

  1. 乘法法则: logb(xy) = logbx + logby

    log28 + log24 = log2(8 x 4)

    3 + 2 = log232 = 5

  2. 除法法则: logb(x/y) = logbx - logby

    log28 - log22 = log2(8 / 2)

    3 - 1 = log24 = 2

  3. 幂法则:logbxk = k * logbx

    log283 = 3 _ log28 = 3 _ 3 = 9

    log283 = log2512 = 9

对数应用场景

  1. 计算机科学:O(logn)
  2. 物理学
  3. 金融和经济学领域
  4. 生物学

-EOF-