Algorithm 有没有更快的算法来找到log(n)的近似值,它的时间复杂度是多少?

Algorithm 有没有更快的算法来找到log(n)的近似值,它的时间复杂度是多少?,algorithm,logarithm,Algorithm,Logarithm,有没有更快的算法来找到log(n)的近似值,它的时间复杂度是多少 我只想要log(n)的近似整数值,java中的内置函数log(n)给出的ans具有近似精度的双精度,这对我来说是无用的,而且需要花费很多时间。因为log和乘法是我的程序的主要功能之一,但是log使我的程序太慢了 这里有一些基准 倍增时间:466毫秒 对数耗时:3245毫秒 大约是乘法的10倍 (注意:-这里我使用基准测试只是为了表明与我程序的其他主要函数相比花费了太多的时间,我知道不可能比较两种不同类型的函数) 所以我想知道有没有

有没有更快的算法来找到log(n)的近似值,它的时间复杂度是多少

我只想要log(n)的近似整数值,java中的内置函数log(n)给出的ans具有近似精度的双精度,这对我来说是无用的,而且需要花费很多时间。因为log和乘法是我的程序的主要功能之一,但是log使我的程序太慢了

这里有一些基准

倍增时间:466毫秒

对数耗时:3245毫秒

大约是乘法的10倍

(注意:-这里我使用基准测试只是为了表明与我程序的其他主要函数相比花费了太多的时间,我知道不可能比较两种不同类型的函数)

所以我想知道有没有更快的算法来找到log(n)的近似值,它的时间复杂度是多少


(注意:-算法应该适用于任何基的log())

我不知道它是否真的会更快,但假设您有一个整数
x
,并且您希望它的日志位于基
k

log_k(x) = log_2(x)/log_2(k)

请注意,对于任何
i
floor(log_2(i))
是最重要的非零位的“索引”

谷歌搜索[快速对数近似值]会发现一些很好的可能性。你探索过它们吗?你所说的“乘法”是指什么算法?近似对数的方法有很多种(泰勒法、arctan加法法、Hurwitz法等)