Visualizzazione dei risultati da 1 a 1 su 1
  1. #1

    [Java] Calcolo di molte cifre di PI con l'uso di BigDecimal?

    Buongiorno a tutti,
    vi posto i due file Java(due classi) che implementano l'algoritmo di Archimede tramite una funzione ricorsiva.

    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();
             
        }
     
    }
    MI chiedo se con l'uso di BigDecimal é possibile ricavare teoricamente un buon numero di cifre.
    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?
    Ultima modifica di jabjoint; 10-08-2022 a 18:15
    jabjoint

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2022 vBulletin Solutions, Inc. All rights reserved.