以2為底的對數

一种对数函数
(重定向自Binary logarithm

数学中,以2为底的对数log2 n),又称二进制对数,是为了得到 n 必须将2乘方的指数。

对于正实数 x 定义的函数 f(x) = log2 x 的图像

即对于任何实数 x

例如,log2 1 = 0log2 2 = 1log2 4 = 2log2 32 = 5

2为底的对数是2为底的指数函数反函数,又记作 lb n[註 1]ld nlg n [1][註 2]

许多数学软件都有计算以2为底的对数的功能。自C99起的C语言标准数学函数库[2]和自C++11起的C++语言标准数学函数库[3]中包含了 log2log2flog2l 函数用来计算以2为底的对数。以2为底的对数的整数部分可以由整数上的最高置位操作或查看浮点数上的指数部分完成,分数部分也可以高效地计算。

历史

2的乘方自古以来就被人们所知:例如,它出现在几何原本第九卷命题 32 和命题 36 中。而一个2的乘方的以2为底的对数仅仅是它在2的乘方的序列中的位置。

2为底的对数最早的应用是在音乐理论中,由莱昂哈德·欧拉提出:两个音乐调的频率比的以2为底的对数就是它们相差的八度的个数。以2为底的对数还可以用来计算一个数在二进制中的长度,或是在信息理论中编码一个信息所需的比特个数。在计算机科学中,它们决定了二叉搜索和相关算法的迭代次数。在组合学生物信息学、摄影学以及淘汰制赛事的设计中,都常常用到以2为底的对数。

定义和性质

2为底的对数可以定义为2为底的指数函数反函数。以2为底的指数函数是一个在正实数上定义的严格递增函数,因而有唯一的反函数。也可以定义为 ln n/ln 2,其中 ln 是以任意一种标准方法定义的自然对数。在这种定义中,如果使用复对数,那么以2为底的对数的定义就扩展到复数。例如,Microsoft Excel 提供了 IMLOG2 函数计算以2为底的复对数。[4]

和其他对数一样,以2为底的对数遵循以下等式,可以用来化简结合以2为底的对数与乘法、乘方的式子:

 
 
 

表示法

在数学中,以2为底的对数通常记为 log2 n。然而,有些作者用 lg n 表示以2为底的对数,这也是芝加哥格式手册中列出的表示形式。

注释

  1. ^ ISO 31-11与ISO 80000-2标准规定的记法
  2. ^ 在上下文已经说明了底是 2 时,也可以直接使用 log

參考文獻

  1. ^ Cormen, Thomas H.; Leiserson, Charles E.; Rivest, Ronald L.; Stein, Clifford. Introduction to Algorithms. the United States of America: Massachusetts Institute of Technology. 2009: 56. ISBN 978-0-262-03384-8. 
  2. ^ cppreference中的Clog2log2flog2l文档. (原始内容存档于2019-02-13). 
  3. ^ cppreference中的C++log2log2flog2l文档. (原始内容存档于2019-02-13). 
  4. ^ David M., Bourg. Excel Scientific and Engineering Cookbook. O'Reilly Media. 2006: 232. ISBN 978-0-596-55317-3.