gpt4 book ai didi

java - 计算对数

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:42:38 29 4
gpt4 key购买 nike

我正在尝试编写一种方法,该方法接受基数 k 和值 n 到小数点后 2 位,然后计算 n 的对数基数 k 而无需使用任何 Java 的 Math.log 方法。到目前为止,这是我所拥有的:

public static double log(double k, double n) {
double value = 0.0;

for(double i = 1; i > .001; i /= 10) {
while(!(Math.pow(k, value) >= n )) {
value += i;
}
}

return value;
}

当我尝试计算 5.0625 的以 4 为底的对数时,问题出现了,它返回 2.0,但应该返回 1.5。

我不知道为什么这不起作用。感谢您的帮助。

不,这不是家庭作业,它是我试图解决的问题集的一部分。

最佳答案

您添加的数量 i 太频繁了。因此,您很快就会达到一个大于实际值的值,并且永远不会再次进入 while 循环。

从值中减去一次 i 就可以了:

for(double i = 1; i > .001; i /= 10) {
while(!(Math.pow(k, value) > n )) {
value += i;
}
value -= i;
}

关于java - 计算对数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5669163/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com