Aej*_*jay 5 javascript logarithm node.js
这个问题是在考虑node.js服务器时提出的,但是我将问题称为"javascript",因为我也可能将同样的逻辑用于客户端脚本.
这是问题所在:给定一组x值,y需要以对数方式进行缩放.Math对象执行自然log [ ln(x)],但不提供用于指定对数基数的接口.
对于一个具体的例子,我需要找到以下内容:
log[512](2)
哪个应该返回.1111~
但是,我没有看到允许我完成此操作的界面,我也无法找到公开日志基础选项的库.当然这是一个常见的问题并且有一个解决方案,但我的搜索只找到了解决不同/无关问题的方法.想法?
Pla*_*ure 15
您可以使用对数基数更改公式:
log[a](n) = log[b](n) / log[b](a)
Run Code Online (Sandbox Code Playgroud)
因此,为了获得log(2)base 512,请使用:
function log(b, n) {
return Math.log(n) / Math.log(b);
}
alert(log(2, 512));
Run Code Online (Sandbox Code Playgroud)
注意Math.log上面使用了自然对数基数; 即,它将以ln数学方式编写.
小智 5
我今天在谷歌上找到了这个答案作为第一个结果,如果其他人也找到了它,那就有一个小错误。正确版本如下:
function log(b, n) {
return Math.log(n) / Math.log(b);
}
Run Code Online (Sandbox Code Playgroud)