自定义对数Lua(答案有几乎可用于任何语言的技巧)

Pot*_*Ion 2 math lua logarithm

我正在研究lua的基本转换器,它可以将任何数字的基数转换为另一个基数.为此,我需要一个对数计算器.示例函数(其中logarithm(100, 10)等于log 10(100),等于2):

function logarithm(value, base)
    ... -- Algorithm here
end
print(logarithm(100, 10))
Run Code Online (Sandbox Code Playgroud)

哪个会输出:

2
Run Code Online (Sandbox Code Playgroud)

PS:我希望算法接受任何基数,任何值.

Dr.*_*ann 8

你总是可以使用它

log b(a)= log c(a)/ log c(b)

其中c一个是提供的基数,如e自然对数的欧拉数或10,有时也提供基数2对数.

  • 它适用于任何`c`,而不仅仅是10或欧拉常数. (2认同)