A Java nyelv átfogó könyvtárral rendelkezik a matematikai függvények és műveletek számára. "Math" osztálynak hívják, és a java.lang csomagban található. A Math könyvtár alapvető numerikus műveletekre, trigonometriára, min-max meghatározására, véletlen számok generálására és logaritmikus műveletekre vonatkozó módszereket tartalmaz. A mai oktatóanyagban a Math.pow() módszerre fogunk összpontosítani , amely a számok hatványainak kiszámítására szolgál bázis és kitevő használatával. Kezdjük el. Az „a n-edik hatványa” kifejezés matematikailag n- ként írható fel. A kifejezésekben a következőképpen definiálhatjuk a kifejezéseket. a - n alap - kitevő Tekintsük a kitevőt. Azonosítható, hogy hányszor ismétlődik meg egy szorzás. Az alap az a szám, amely megszorozódik önmagával.
Most készítsünk egy egyszerű Java módszert egy szám hatványának kiszámításához. Kérjük, vegye figyelembe, hogy a következő példában két argumentumot adunk át a powerFunction() metódusnak, amelyek az alap, illetve a kitevő.

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;
}
}
Ha a fenti példakódot futtatjuk, az 32-t ad vissza. Lehet, hogy elképzeled, miért nem írhatunk egyszerűen alap^kitevőt. Ezt nem tehetjük meg, mert a Java-nak nincs hatványozási operátora, amelyet egyetlen kódsorban használhatnánk. A fenti kódot figyelembe véve nyilvánvaló, hogy elég sok időt kellett töltenünk ennek a módszernek a megírásával. Sőt, ha nagy teljesítményeket fogunk számolni, a módszernek jelentős időbe telik a számítások elvégzése, mivel hurkokat használunk. Ezen túlmenően a hurkok megakadályozzák, hogy törtkitevőkkel hajtsunk végre hatványszámítást. Ennek a módszernek pedig nem jó a számítási komplexitása, mert nem túl kedvező, mivel több lehetőség van az optimalizálásra. Figyelembe véve, hogy a programozók milyen gyakran alkalmazzák a hatványozást és más matematikai műveleteket, a napokban a Java fejlesztői létrehoztak egy „Math” nevű könyvtárat, amely a matematikai műveletek megkönnyítésére szolgál. Ezért ahelyett, hogy nulláról írnánk egy power függvényt, kihasználhatjuk ezt a könyvtárat, amely a Java Lang csomagban található.
Mi az a Math.pow módszer és hogyan használjuk?
A Math.pow a java.lang csomagban található a Math könyvtár metódusaként. Számok hatványának kiszámítására szolgál, mind az egészek, mind a kettősek. Nézzük a szintaxisát.
public static double pow(double base, double exponent)
Ahogy a szintaxisban is láthatjuk, a java.lang.Math.pow() metódus két argumentumot vesz fel. Az első az alap, a második a kitevő. Ez az alapkitevőt adja vissza kimenetként. Lássuk, hogyan nevezhetjük.
Szám hatványra emelése Java-ban a Math.pow használatával
Keressük meg az 5 4 értékét a Math.pow segítségével .
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);
}
}
A kimenet 625.0. Mint látható, ez dupla érték. Ha zavar a tizedesvessző, könnyen megszabadulhatunk tőle, ha a számot egész számra öntjük az alábbiak szerint. Vegye figyelembe, hogy a fő metóduson belül megváltoztatjuk az első sort.
int answer = (int) Math.pow(5, 4);
Most az eredmény 625. Használjunk törtszámokat az alap és a kitevő számára is, és próbáljunk választ kapni. Nézzük, mi az 1,25 4,5 értéke .
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);
}
}
Ez 2,729575167846423 kimenetet eredményez. Ha számológépet használ, látni fogja, hogy ugyanazt a választ adja vissza. Nézzünk meg még egy példát, mielőtt a következő részre lépnénk. Egy számot negatív hatványra emelünk, és összehasonlítjuk az eredményeket. Ebben a példában a 4-et választjuk alapnak és -2-t kitevőnek.
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);
}
}
0,0625 kimenetet kapunk.
Gyors példa: A válasz kerekítése
Tegyük fel, hogy meg kell találnunk az 1,25 4,5 értékét . A válasz 2,729575167846423. Elég gyakran kell kerekíteni az eredményt. Próbáljunk a negyedik tizedesjegyig pontos választ kapni. Hogyan kell csinálni? Mi van, ha csak az első 4 tizedesjegyre van szükségünk? Ehhez használhatjuk a java.lang.Math.round metódust. Mivel azonban a Math.round az értéket a legközelebbi egész számra kerekíti, meg kell szoroznunk a tizedesjegyek számával, majd ismét kerekítenünk és osztanunk kell.
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);
}
}
A kimenet 2,73.
A Math.pow helyes használata
Amikor a java.lang.Math.pow módszert használjuk , néhány dolgot szem előtt kell tartani.- Ha a kitevő paramétere nulla, a kimenet 1,0 lesz. Ennek az az oka, hogy a nulla hatványa bármely szám esetén egy.
- Ha a kitevő paraméter egy, a kimenet lesz az alapparaméter. Ennek az az oka, hogy ha bármilyen számot 1 hatványára emel, az eredmény ugyanaz, mint az alap.
- Ha az alap negatív/pozitív nulla és a kitevő paramétere negatív szám, akkor az eredmény a Végtelen. (Negatív nullák előfordulhatnak a számok nulla és a legkisebb reprezentálható negatív nem nulla szám közötti kerekítése miatt).
- Ha a kitevő paramétere NaN, a kimenet is NaN lesz.
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);
}
}
Ez NaN-t fog kiadni. Tehát, ha a kód NaN-t eredményez, bölcs dolog lenne ellenőrizni, hogy a kitevő argumentuma NaN-e. Ha kíváncsi arra, hogy mi az a NaN, ez azt jelenti, hogy „nem szám”, és azt jelzi, hogy az érték nincs meghatározva. Úgy gondoljuk, hogy most már készen áll arra, hogy a lang.Math.pow()-t használni tudja alkalmazásaiban.
GO TO FULL VERSION