CodeGym /Java Blog /Random-IT /Utilizzo del metodo Math.pow() in Java
John Squirrels
Livello 41
San Francisco

Utilizzo del metodo Math.pow() in Java

Pubblicato nel gruppo Random-IT
Il linguaggio Java è dotato di una libreria completa per funzioni e operazioni matematiche. Si chiama classe "Math" e risiede nel pacchetto java.lang . La libreria Math include metodi per operazioni numeriche fondamentali, trigonometria, ricerca min-max, generazione di numeri casuali e operazioni logaritmiche. Nel tutorial di oggi, ci concentreremo sul metodo Math.pow() , che viene utilizzato per calcolare potenze di numeri utilizzando una base e un esponente. Iniziamo. L'espressione 'ennesima potenza di a' può essere scritta matematicamente come n. Possiamo definire i termini nelle espressioni come segue. a - base n - esponente Consideriamo l'esponente. Possiamo identificarlo come il numero di volte in cui viene ripetuta un'operazione di moltiplicazione. La base è il numero che viene moltiplicato per se stesso. Utilizzo del metodo Math.pow() in Java - 1Creiamo ora un semplice metodo Java per calcolare la potenza di un numero. Si noti che nell'esempio seguente, stiamo passando due argomenti nel metodo powerFunction() , che sono rispettivamente la base e l'esponente.

public class Main {
 
   public static void main(String[] args) {
       int result = powerFunction(2, 5);
       System.out.println("2 raised to the power of 5 = " + result);
   }
 
   static int powerFunction(int base, int exponent) {
       int result = 1;
       for (int i = 0; i < exponent; i++) {
           result = base * result;
       }
       return result;
   }
}
Se eseguiamo il codice di esempio precedente, restituirebbe 32. Potresti immaginare perché non possiamo semplicemente scrivere base^esponente. Non possiamo farlo perché Java non ha operatori di esponenziazione che possiamo usare in una singola riga di codice. Considerando il codice sopra, è ovvio che abbiamo dovuto dedicare un bel po' di tempo alla scrittura di questo metodo. Inoltre, se calcoliamo potenze elevate, il metodo impiegherà molto tempo per completare questi calcoli poiché stiamo usando cicli for. Inoltre, i loop ci impediranno di eseguire calcoli di potenza con esponenti frazionari. E questo metodo non ha una buona complessità computazionale, perché non è molto favorevole in quanto c'è più spazio per l'ottimizzazione. Considerando la frequenza con cui i programmatori utilizzano l'elevamento a potenza e altre operazioni matematiche, in passato gli sviluppatori di Java hanno creato una libreria chiamata "Math", dedicata a facilitare le operazioni matematiche. Pertanto, invece di scrivere una funzione di potenza da zero, possiamo sfruttare questa libreria inclusa nel pacchetto Java Lang.

Cos'è il metodo Math.pow e come lo usiamo?

Math.pow può essere trovato nel pacchetto java.lang come metodo della libreria Math. Viene utilizzato per calcolare la potenza dei numeri, sia interi che doppi. Consideriamo la sua sintassi.

public static double pow(double base, double exponent)
Come possiamo vedere nella sintassi, il metodo java.lang.Math.pow() accetta due argomenti. Il primo è la base e il secondo è l'esponente. Ciò restituirà l'esponente di base come output. Vediamo come chiamarlo.

Elevare un numero a una potenza in Java utilizzando Math.pow

Troviamo il valore di 5 4 usando Math.pow .

import java.lang.Math;
public class MyClass{
    public static void main(String []args){
       double answer = Math.pow(5, 4);
// java.lang.Math.pow() method
 
       System.out.println("5 raised to the power of 4 = " + answer);
    }    
}
L'uscita è 625.0. Come puoi vedere, è un valore doppio. Se sei infastidito dal punto decimale, possiamo facilmente sbarazzarcene trasformando il numero in un numero intero come segue. Nota che stiamo cambiando la prima riga all'interno del metodo principale.

 int answer = (int) Math.pow(5, 4);
Ora il risultato è 625. Usiamo i numeri frazionari sia per la base che per l'esponente e proviamo a ottenere una risposta. Vediamo qual è il valore di 1,25 4,5 .

import java.lang.Math;
 
public class MyClass {
 
   public static void main(String[] args) {
       double answer = Math.pow(1.25, 4.5);
// java.lang.Math.pow() method
 
       System.out.println("1.25 raised to the power of 4.5 = " + answer);
   }
}
Questo produrrebbe 2.729575167846423. Se usi una calcolatrice, vedrai che restituisce la stessa risposta. Esaminiamo un altro esempio prima di passare alla sezione successiva. Innalzeremo un numero a una potenza negativa e confronteremo i risultati. Per questo esempio, sceglieremo 4 come base e -2 come esponente.

import java.lang.Math;
 
public class MyClass{
 
     public static void main(String []args){
        double answer = Math.pow(4, -2);
// java.lang.Math.pow() method
 
        System.out.println(answer);
     }    
}
Otteniamo l'output 0.0625.

Esempio rapido: come arrotondare la risposta

Diciamo, dobbiamo trovare il valore di 1.25 4.5 . La risposta è 2.729575167846423. Molto spesso è necessario arrotondare il risultato. Proviamo a ottenere una risposta precisa fino alla quarta cifra decimale. Come farlo? E se richiediamo solo le prime 4 cifre decimali? Possiamo usare il metodo java.lang.Math.round per questo. Tuttavia, poiché Math.round arrotonda il valore all'intero più vicino, dovremo moltiplicarlo per il numero di cifre decimali, quindi arrotondare e dividere nuovamente.

import java.lang.Math;
 
public class MyClass{
 
     public static void main(String []args){
        double answer = Math.pow(1.25, 4.5);
        answer = Math.round(answer*100.0)/100.0;
        
        System.out.println(answer);
     }
     
}
L'uscita è 2,73.

Come usare correttamente Math.pow

Quando usiamo il metodo java.lang.Math.pow , ci sono alcune cose da tenere a mente.
  1. Se il parametro dell'esponente è zero, l'output sarà 1.0. Questo perché la potenza di zero per qualsiasi numero è definita come uno.
  2. Se il parametro esponente è uno, l'output sarà il parametro base. Questo perché se elevi qualsiasi numero alla potenza di 1, il risultato è lo stesso della base.
  3. Se la base è zero negativo/positivo e il parametro esponente è un numero negativo, il risultato è Infinito. (Gli zeri negativi possono verificarsi a causa dell'arrotondamento dei numeri tra zero e il più piccolo numero negativo diverso da zero rappresentabile).
  4. Se il parametro dell'esponente è NaN, anche l'output sarà NaN.
Consideriamo un caso in cui può verificarsi questa terza situazione.

import java.lang.Math;
 
public class MyClass{
 
     public static void main(String []args){         
        double base = 5;
        double exponent = Double.NaN;
 
        double answer = Math.pow(base, exponent);
 
        System.out.println(answer);
     }     
}
Questo produrrà NaN. Quindi, se il tuo codice risulta in NaN, sarebbe saggio verificare se l'argomento dell'esponente è NaN. Nel caso ti stia chiedendo cosa sia NaN, significa "non un numero" e indica che il valore non è stato definito. Crediamo che ora siate tutti pronti per andare avanti e utilizzare lang.Math.pow() nelle vostre applicazioni.

Conclusione

Il metodo java.lang.Math.pow() è un ottimo modo per trovare facilmente la potenza di vari numeri, sia interi che valori frazionari. A differenza di un metodo che potresti scrivere tu stesso, è altamente ottimizzato e adatto a una gamma di applicazioni critiche in termini di tempo. Sebbene emetta tutti i risultati come double, possiamo sempre convertire il valore in un numero intero come abbiamo fatto nell'esempio. Inoltre, per comodità, la libreria java.lang.Math fornisce metodi per arrotondare il risultato al numero preferito di posizioni decimali.
Commenti
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION