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

问题描述 投票:0回答:2

我正在为 lua 开发一个基数转换器,可以将任何数字的基数转换为另一个基数。为此,我需要一个对数计算器。示例函数(其中

logarithm(100, 10)
等于 log10(100),等于 2):

function logarithm(value, base)
    ... -- Algorithm here
end
print(logarithm(100, 10))

哪个会输出:

2

P.S:我希望算法接受任何基数、任何值。

math lua logarithm
2个回答
10
投票

您可以随时使用它

logb(a) = logc(a) / logc(b)

其中

c
是提供的底数之一,例如自然对数或 10 的欧拉数
e
,有时还提供 2 对数的底数。


0
投票

例如 math.log2 可以完成为

math.log2 = function (x)
    return math.log(x) / math.log(2)
end
© www.soinside.com 2019 - 2024. All rights reserved.