首页 > 解决方案 > 在java中使用递归计算pi

问题描述

我正在研究一种应该利用递归来计算 pi 的方法。然而,问题在于,为了接近,输入数字(num)需要非常高。如下图所示,输入 5000 使我到达 3.141392653591791。有什么我做错了吗?

这是我正在使用的方程式,并且需要使用:
图片

import java.lang.Math;

public class PiSeries {
    public static double calculatePi(double num) {
        if(num == 1) {
            return 4;
        } else {
            return (4*((Math.pow(-1,num+1))/((2*num)-1)) + calculatePi(num-1));
        }
    }

    public static void main(String[] args) {
        System.out.println(calculatePi(5000));
    }
}

标签: java

解决方案


发布的方程式可能不正确 - 检查初始值。实现的代码没有发布方程(停在num == 1),但在数学上似乎是正确的(计算 PI)。

5000元素 - >关于1 / (2*5000-1) = 1/10000那个错误,第四个十进制数字


推荐阅读