Calcular π

Saturday, Nov 12, 2016

Seja a fórmula matemática para calcular Pi (Π|π)

π = 4 1 1 3 + 1 5 1 7 + 1 9

Fazendo algumas operações algebricas para que a fórmula fique mais fácil de trabalha no algoritmo:

π = 4 1 4 3 + 4 5 4 7 + 4 9

o algoritmo:

import java.math.BigDecimal;
import java.math.MathContext;
import java.math.RoundingMode;

public class Pi{
  public Pi(){
    int precisao = 15000;
    MathContext mx                   = new MathContext(precisao, RoundingMode.HALF_EVEN);

    BigDecimal quatro                = new BigDecimal( 4, mx);
    BigDecimal pi                    = new BigDecimal( 0, mx);
    BigDecimal sinal                 = new BigDecimal( 1, mx);
    BigDecimal incrementoDenominador = new BigDecimal( 2, mx);
    BigDecimal denominador           = new BigDecimal( 1, mx);

    for (int i = 0 ; i < precisao ; i++) {
      BigDecimal tmp  = quatro.divide(denominador, mx);
      tmp = tmp.multiply(sinal, mx);
      pi = pi.add(tmp, mx);

      sinal = sinal.negate();
      denominador = denominador.add(incrementoDenominador);
    }
    System.out.print("\u03c0: ");
    System.out.println(pi);
  }  
  public static void main(String[] args) {
    new Pi();
  }
}