CodeGym /Java blogg /Slumpmässig /Använda Math.pow()-metoden i Java
John Squirrels
Nivå
San Francisco

Använda Math.pow()-metoden i Java

Publicerad i gruppen
Java-språket är utrustat med ett omfattande bibliotek för matematiska funktioner och operationer. Den kallas "Math"-klassen, och den finns i paketet java.lang . Math-biblioteket innehåller metoder för grundläggande numeriska operationer, trigonometri, hitta min-max, generera slumpmässiga tal och logaritmiska operationer. I dagens handledning kommer vi att fokusera på metoden Math.pow() som används för att beräkna potenser av tal med hjälp av en bas och en exponent. Låt oss börja. Uttrycket 'n:te potensen av a' kan matematiskt skrivas som ett n. Vi kan definiera termerna i uttrycken enligt följande. a - bas n - exponent Låt oss betrakta exponenten. Vi kan identifiera det som antalet gånger en multiplikationsoperation upprepas. Basen är det tal som multipliceras med sig själv. Använda Math.pow()-metoden i Java - 1Låt oss nu skapa en enkel Java-metod för att beräkna styrkan av ett tal. Observera att i följande exempel skickar vi två argument till metoden powerFunction() , som är basen respektive exponenten.

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;
   }
}
Om vi ​​kör exemplet ovan, skulle den returnera 32. Du kanske föreställer dig varför vi inte bara kan skriva bas^exponent. Vi kan inte göra det eftersom Java inte har någon exponentieringsoperator som vi kan använda i en enda kodrad. Med tanke på ovanstående kod är det uppenbart att vi var tvungna att spendera en hel del tid på att skriva den här metoden. Dessutom, om vi ska beräkna höga effekter, kommer metoden att ta avsevärd tid att slutföra dessa beräkningar eftersom vi använder för loopar. Utöver det kommer loopar att hindra oss från att utföra effektberäkningar med bråkexponenter. Och den här metoden har inte bra beräkningskomplexitet, eftersom det inte är särskilt fördelaktigt eftersom det finns mer utrymme för optimering. Med tanke på hur frekvent exponentiering och andra matematiska operationer används av programmerare, på den tiden skapade Javas utvecklare ett bibliotek som heter "Math", som är dedikerat till att underlätta matematiska operationer. Därför, istället för att skriva en power-funktion från början, kan vi dra nytta av detta bibliotek som ingår i Java Lang-paketet.

Vad är Math.pow-metoden och hur använder vi den?

Math.pow finns i paketet java.lang som en metod för Math-biblioteket. Det används för att beräkna potensen av tal, både heltal och dubblar. Låt oss överväga dess syntax.

public static double pow(double base, double exponent)
Som vi kan se i syntaxen tar java.lang.Math.pow() -metoden in två argument. Den första är basen och den andra är exponenten. Detta kommer att returnera basexponent som dess utdata. Låt oss se hur vi kan kalla det.

Att höja ett nummer till en makt i Java med Math.pow

Låt oss hitta värdet på 5 4 med 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);
    }    
}
Utgången är 625.0. Som du kan se är det ett dubbelt värde. Om du stör dig på decimaltecknet kan vi enkelt bli av med det genom att gjuta talet till ett heltal enligt följande. Observera att vi ändrar den första raden i huvudmetoden.

 int answer = (int) Math.pow(5, 4);
Nu är resultatet 625. Låt oss använda bråktal för både bas och exponent och försöka få ett svar. Låt oss se vad värdet på 1,25 4,5 är.

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);
   }
}
Detta skulle mata ut 2,729575167846423. Om du använder en miniräknare kommer du att se att den ger samma svar. Låt oss gå igenom ytterligare ett exempel innan vi går vidare till nästa avsnitt. Vi kommer att höja en siffra till en negativ effekt och jämföra resultaten. I det här exemplet väljer vi 4 som bas och -2 som exponent.

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);
     }    
}
Vi får utgången 0,0625.

Snabbexempel: Hur du avrundar ditt svar

Säg att vi måste hitta värdet 1,25 4,5 . Svaret är 2,729575167846423. Ganska ofta är det nödvändigt att runda resultatet. Låt oss försöka få ett korrekt svar med fjärde decimalen. Hur man gör det? Vad händer om vi bara kräver de första fyra decimalerna? Vi kan använda java.lang.Math.round -metoden för det. Men eftersom Math.round avrundar värdet till närmaste heltal, måste vi multiplicera det med antalet decimaler och sedan avrunda och dividera igen.

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);
     }
     
}
Utgången är 2,73.

Hur man använder Math.pow på rätt sätt

När vi använder java.lang.Math.pow- metoden finns det några saker att tänka på.
  1. Om exponentparametern är noll blir utsignalen 1,0. Detta beror på att makten noll för ett tal definieras som ett.
  2. Om exponentparametern är en, kommer utdata att vara basparametern. Detta beror på att om du höjer ett tal till potensen 1 blir resultatet detsamma som basen.
  3. Om basen är negativ/positiv noll och exponentparametern är ett negativt tal, så är resultatet Oändlighet. (Negativa nollor kan uppstå på grund av avrundning av tal mellan noll och det minsta representativa negativa icke-nolltal).
  4. Om exponentparametern är NaN, kommer utdata också att vara NaN.
Låt oss överväga ett fall där denna tredje situation kan inträffa.

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);
     }     
}
Detta kommer att mata ut NaN. Så om din kod resulterar i NaN, skulle det vara klokt att kontrollera om exponentargumentet är NaN. Om du undrar vad NaN är betyder det "inte ett tal" och indikerar att värdet inte har definierats. Vi tror att ni nu är redo att gå vidare och använda lang.Math.pow() att använda i era applikationer.

Slutsats

Metoden java.lang.Math.pow() är ett utmärkt sätt att enkelt hitta kraften i olika tal, både heltal och bråkvärden. Till skillnad från en metod du kanske skriver själv är den mycket optimerad och väl lämpad för en rad tidskritiska applikationer. Även om den matar ut alla resultat som dubblar, kan vi alltid kasta värdet till ett heltal som vi gjorde i exemplet. Dessutom, för vår bekvämlighet, tillhandahåller java.lang.Math- biblioteket metoder för att avrunda resultatet till önskat antal decimaler.
Kommentarer
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION