在Javascript中用于logb的polyfill是什么?

时间:2017-10-29 04:18:27

标签: javascript algorithm

我需要使用logb from C++之类的内容,但谷歌搜索会出现absolutely nothing useful而我无法理解如何根据该C ++文档复制该功能。

有谁知道如何为JS制作polyfill或等效函数?

1 个答案:

答案 0 :(得分:1)

来自您关联的文件

  

返回| x |的对数,使用FLT_RADIX作为基数   对数。

     

在大多数平台上,FLT_RADIX是2,因此这个函数是   相当于正值的log2。

所以你只需要计算log2(|x|)的内容。

Math.log(Math.abs(x))/Math.log(2)

对数函数有一个基础,最常见的是10,因为我们在基数为10的数字系统中工作。计算机的通用基础是基础2,因为它在二进制系统中工作。转换碱基可以通过使用这个公式来完成。

  

记录 b (x)= Log v (x)/ Log v (b)

只需将Log(x)放在您想要的任何基础(例如10个)中,然后将其除以Log(b)

关于它的相关链接:

http://www.mathwords.com/c/change_of_base_formula.htm https://www.khanacademy.org/math/algebra2/exponential-and-logarithmic-functions/change-of-base-formula-for-logarithms/a/logarithm-change-of-base-rule-intro

您可以选择以下功能:

// get the log value of x using base b
function logb(x, b) {
  return Math.log(x)/Math.log(b);
}