CodeGym /Java Blog /Willekeurig /De methode Math.pow() gebruiken in Java
John Squirrels
Niveau 41
San Francisco

De methode Math.pow() gebruiken in Java

Gepubliceerd in de groep Willekeurig
De Java-taal is uitgerust met een uitgebreide bibliotheek voor wiskundige functies en bewerkingen. Het wordt de klasse "Math" genoemd en bevindt zich in het pakket java.lang . De Math-bibliotheek bevat methoden voor fundamentele numerieke bewerkingen, trigonometrie, het vinden van min-max, het genereren van willekeurige getallen en logaritmische bewerkingen. In de tutorial van vandaag zullen we ons concentreren op de methode Math.pow() die wordt gebruikt om machten van getallen te berekenen met behulp van een grondtal en een exponent. Laten we beginnen. De uitdrukking 'nde macht van a' kan wiskundig worden geschreven als een n. We kunnen de termen in de uitdrukkingen als volgt definiëren. a - grondtal n - exponent Laten we eens kijken naar de exponent. We kunnen het identificeren als het aantal keren dat een vermenigvuldigingsbewerking wordt herhaald. Het grondtal is het getal dat met zichzelf wordt vermenigvuldigd. De methode Math.pow() gebruiken in Java - 1Laten we nu een eenvoudige Java-methode maken om de macht van een getal te berekenen. Houd er rekening mee dat we in het volgende voorbeeld twee argumenten doorgeven aan de powerFunction()- methode, die respectievelijk de basis en de exponent zijn.

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;
   }
}
Als we de bovenstaande voorbeeldcode uitvoeren, zou het 32 ​​retourneren. Je zou je kunnen voorstellen waarom we niet gewoon base^exponent kunnen schrijven. Dat kunnen we niet doen omdat Java geen machtsverheffende operator heeft die we in een enkele regel code kunnen gebruiken. Gezien de bovenstaande code is het duidelijk dat we behoorlijk wat tijd hebben moeten besteden aan het schrijven van deze methode. Bovendien, als we hoge machten gaan berekenen, zal de methode een aanzienlijke hoeveelheid tijd kosten om deze berekeningen te voltooien, aangezien we for-lussen gebruiken. Bovendien zullen lussen voorkomen dat we machtsberekeningen uitvoeren met fractionele exponenten. En deze methode heeft geen goede computationele complexiteit, omdat er niet erg gunstig is omdat er meer ruimte is voor optimalisatie. Als je bedenkt hoe vaak machtsverheffen en andere wiskundige bewerkingen worden gebruikt door programmeurs, vroeger creëerden de ontwikkelaars van Java een bibliotheek genaamd 'Math', die is gewijd aan het vergemakkelijken van wiskundige bewerkingen. Daarom kunnen we, in plaats van helemaal opnieuw een powerfunctie te schrijven, profiteren van deze bibliotheek die is opgenomen in het Java Lang-pakket.

Wat is de Math.pow-methode en hoe gebruiken we deze?

Math.pow is te vinden in het pakket java.lang als een methode van de Math-bibliotheek. Het wordt gebruikt om de macht van getallen te berekenen, zowel gehele getallen als dubbele getallen. Laten we de syntaxis eens bekijken.

public static double pow(double base, double exponent)
Zoals we in de syntaxis kunnen zien, gebruikt de methode java.lang.Math.pow() twee argumenten. De eerste is de basis en de tweede is de exponent. Dit retourneert de basisexponent als uitvoer. Laten we eens kijken hoe we het kunnen noemen.

Een getal verheffen tot een macht in Java met behulp van Math.pow

Laten we de waarde van 5 4 vinden met 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);
    }    
}
De uitvoer is 625.0. Zoals je kunt zien, is het een dubbele waarde. Als je last hebt van de komma, kunnen we er gemakkelijk vanaf komen door het getal als volgt naar een geheel getal te casten. Merk op dat we de eerste regel binnen de hoofdmethode wijzigen.

 int answer = (int) Math.pow(5, 4);
Nu is het resultaat 625. Laten we gebroken getallen gebruiken voor zowel grondtal als exponent en proberen een antwoord te krijgen. Laten we eens kijken wat de waarde van 1,25 4,5 is.

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);
   }
}
Dit zou 2,729575167846423 opleveren. Als je een rekenmachine gebruikt, zul je zien dat deze hetzelfde antwoord geeft. Laten we nog een voorbeeld bekijken voordat we naar de volgende sectie gaan. We verheffen een getal tot een negatieve macht en vergelijken de resultaten. Voor dit voorbeeld kiezen we 4 als basis en -2 als 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);
     }    
}
We krijgen de uitvoer 0.0625.

Snel voorbeeld: hoe u uw antwoord afrondt

Stel, we moeten de waarde van 1,25 4,5 vinden . Het antwoord is 2,729575167846423. Heel vaak is het nodig om het resultaat af te ronden. Laten we proberen een antwoord te krijgen dat tot op de vierde decimaal nauwkeurig is. Hoe je dat doet? Wat als we alleen de eerste 4 decimalen nodig hebben? Daarvoor kunnen we de methode java.lang.Math.round gebruiken . Aangezien Math.round de waarde echter afrondt op het dichtstbijzijnde gehele getal, moeten we deze vermenigvuldigen met het aantal decimalen en vervolgens afronden en opnieuw delen.

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);
     }
     
}
De uitvoer is 2,73.

Hoe u Math.pow op de juiste manier gebruikt

Wanneer we de methode java.lang.Math.pow gebruiken , zijn er een paar dingen waarmee u rekening moet houden.
  1. Als de exponentparameter nul is, is de uitvoer 1,0. Dit komt omdat de macht van nul voor elk getal wordt gedefinieerd als één.
  2. Als de exponentparameter één is, is de uitvoer de basisparameter. Dit komt omdat als je een getal verheft tot de macht van 1, het resultaat hetzelfde is als het grondtal.
  3. Als het grondtal negatief/positief nul is en de exponentparameter een negatief getal is, dan is het resultaat Oneindig. (Negatieve nullen kunnen voorkomen als gevolg van het afronden van getallen tussen nul en het kleinste representatieve negatieve niet-nul getal).
  4. Als de exponentparameter NaN is, is de uitvoer ook NaN.
Laten we eens kijken naar een geval waarin deze derde situatie kan voorkomen.

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);
     }     
}
Dit zal NaN uitvoeren. Dus als uw code resulteert in NaN, is het verstandig om te controleren of het exponentargument NaN is. Mocht je je afvragen wat NaN is, het betekent 'geen getal' en geeft aan dat de waarde niet is gedefinieerd. We denken dat u nu helemaal klaar bent om door te gaan en lang.Math.pow() in uw toepassingen te gebruiken.

Conclusie

De methode java.lang.Math.pow() is een geweldige manier om eenvoudig de macht van verschillende getallen te vinden, zowel gehele getallen als breukwaarden. In tegenstelling tot een methode die u misschien zelf schrijft, is deze zeer geoptimaliseerd en zeer geschikt voor een reeks tijdkritische toepassingen. Hoewel het alle resultaten als dubbelen uitvoert, kunnen we de waarde altijd omzetten in een geheel getal, zoals in het voorbeeld. Bovendien biedt de java.lang.Math- bibliotheek voor ons gemak methoden om het resultaat af te ronden op het gewenste aantal decimalen.
Opmerkingen
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION