Buongiorno a tutti,
vi posto i due file Java(due classi) che implementano l'algoritmo di Archimede tramite una funzione ricorsiva.
MI chiedo se con l'uso di BigDecimal é possibile ricavare teoricamente un buon numero di cifre.codice:import java.math.BigDecimal; import java.math.BigInteger; public class PGreco { private long N; private void setMax(long N){ this.N = N; } PGreco(long n) { setMax(n); } double Pi(double l, long n) { //Formula per il calcolo del lato del poligono con 2n lati //a partire da quello di n lati (esagono) //l = Math.sqrt(2 - Math.sqrt(4 - l * l)); //Razionalizzando diventa: l = l / Math.sqrt(2 + Math.sqrt(4 - l * l)); if (n>2) return Pi(l, n/2); else { double P = 6 * l * N; return P; } } void stampa(){ double l = Math.sqrt(2-Math.sqrt(3)); System.out.println( Pi(l, N) ); } } class Calcolo { public static void main(String[] args) { long n = (long)Math.pow(2,15000); new PGreco(n).stampa(); } }
Tuttavia non saprei come eseguire la radice quadrata...Forse uso Java 8....
Avrei un'altra domanda: E' consigliabile la ricorsione o meglio il ciclo iterativo?


Rispondi quotando