gpt4 book ai didi

Java - 如何找到 BigDecimal 的倒数?

转载 作者:行者123 更新时间:2023-12-05 05:14:24 26 4
gpt4 key购买 nike

我正在尝试使用 Chudnovsky 算法在 Java 中计算 pi 的数字。我使用 BigDecimal 是为了尽可能精确,但公式适用于 1/pi。我想将找到的值转换为 pi/1。我尝试使用 Math.pow() 和 BigDecimal.pow() 但无法弄清楚。找到 BigDecimal 的倒数的最佳方法是什么?这是我的代码:

    public static void main(String[] args)
{
JFrame j = new JFrame("Pi");
j.setSize(300,100);
j.setVisible(true);
JTextArea jt = new JTextArea();
Container contain = new Container();
FastPi fp = new FastPi();
BigDecimal pi = new BigDecimal(0);
for(long l=0; l<Long.MAX_VALUE; l++)
{
pi = BigDecimal.valueOf(12*(((Math.pow(-1,l)*fp.factorial(6*l)*
(545140134*l+13591409))/
(fp.factorial(3*l)*
Math.pow(fp.factorial(l),3)*
Math.pow(640320,3*l+3/2)))));
contain = j.getContentPane();
// tried to do pi^-1 below this comment
jt.setText(String.valueOf(pi.pow(-1)) + " " + l);
contain.add(jt);
}
}
public long factorial(long f)
{
long result = 1;
for(int i=2; i<=f; i++)
{
result *= i;
}
return result;
}

抱歉,我使用 L 作为变量,虽然它的颜色与 1 不同。

最佳答案

1 除以算法的结果,保留结果的比例:

BigDecimal inversePi = yourAlgorithm();

BigDecimal pi = BigDecimal.ONE.divide(inversePi, inversePi.scale(), RoundingMode.HALF_UP);

关于Java - 如何找到 BigDecimal 的倒数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52490828/

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