对数含义
对数,英语叫做 logarithm,用来描述一个数是另一个数的多少次幂。
例如如果有 by = x,那么 logbx = y,就是幂运算的逆运算。其中:
- b:称之为对数的底数(base)
- x:称之为对数的真数(argument)
- y:对数的结果(result)
常见对数的底
- 自然对数(ln):底数是 e(大约等于 2.718)。在数学和很多科学领域,使用自然对数比较普遍。
- 二进制对数(log₂):底数是 2,常用于计算机科学中,因为计算机使用二进制表示数据。
- 常用对数(log₁₀):底数是 10,通常在科学和工程中使用。
大O表示法中,经常会省略底数‼️
举个例子,假设算法的复杂度为 O(log2n) ,我们会直接表示为 O(logn),直接省略了底数 2.
原因:因为大O表示法关心的是算法的增长速率,而底数是多少不会影响增长的速率,底数的变化仅仅是一个常数因子的变化。
假设有 log2n 和 log10n,这两者之间的关系可以用一个公式:log10n = log2n / log210,进一步进行换算:log2n = log10n * log210,这里的log210 就是一个常数因子,在大O表示法中常数因子会被忽略,不会去关心常数。这也是为什么在大O表示法中会省略底数的原因。
对数相关计算
-
乘法法则: logb(xy) = logbx + logby
log28 + log24 = log2(8 x 4)
3 + 2 = log232 = 5
-
除法法则: logb(x/y) = logbx - logby
log28 - log22 = log2(8 / 2)
3 - 1 = log24 = 2
-
幂法则:logbxk = k * logbx
log283 = 3 _ log28 = 3 _ 3 = 9
log283 = log2512 = 9
对数应用场景
- 计算机科学:
O(logn) - 物理学
- 金融和经济学领域
- 生物学
-EOF-