小编sud*_*udo的帖子

Math.pow()在Java中的算法是什么?

我刚开始使用Java,作为第一个项目,我正在编写一个程序来查找给定数字的根(在本例中为立方根).现在我正在尝试Newton-Ralphson来实现这一目标.这是代码 -

import java.util.Scanner;

import static java.lang.Math.abs;

public class newClass {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.println("Number whose cube root u wanna find:");
        Double number = input.nextDouble();
        Double epsilon = 0.0001;
        Double ans = number/2.00;
        while (abs((abs(number) - abs(Math.pow(ans,3))))>epsilon){
            System.out.println("in loop");
            ans = ans - ((Math.pow(ans,3) - number)/(3*Math.pow(ans,2)));
            System.out.println(ans);
            if ((number - ans)<=epsilon){
                System.out.println(ans);
            }
        }
        //System.out.println(Math.pow(number,1.0/3.0));


    }
}
Run Code Online (Sandbox Code Playgroud)

这只能达到11位数,因为它太大了,IDE无法处理.但是,如果我只是使用Math.pow(number,1.0/3.0)它可以工作更大的数字,并立即计算它.


那么,Math.pow()使用的算法是什么给出了即时答案? 我知道我的方法依赖于猜测,我猜math.pow()可能实际上是在计算答案,但是如何?

java algorithm

12
推荐指数
1
解决办法
6143
查看次数

标签 统计

algorithm ×1

java ×1