Я пытаюсь вычислить цифры числа пи в Java, используя алгоритм Чудновского.Я использую 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.
Редактировать: BigDecimal.ONE.divide (pi, RoundingMode.HALF_UP) didnне похоже на работу.