标签: algorithm math floating-point logarithm natural-logarithm
请问,有谁知道如何计算整数的自然对数的整数部分?
最好仅使用整数算术(类似于integer square root方法),而不依赖浮点数log(即不使用Math.floor(Math.log(x))。
log
Math.floor(Math.log(x))
要解释为什么这个问题与链接的问题不是重复的:它处理自然对数和可能无界的输入,另一个用于基数2或10,并通过32位固定精度算术来模拟浮点。另一个问题也没有说明正确计算无界输入的自然对数的整数部分需要多少固定位。
答案 0 :(得分:0)
我希望允许乘法。
因此,您可以应用exponential search(一种二进制搜索)方法来找到这样的幂
e^n <= x < e^(n+1)