CodeGym /Java блог /Случаен /Използване на метода Math.pow() в Java
John Squirrels
Ниво
San Francisco

Използване на метода Math.pow() в Java

Публикувано в групата
Езикът Java е оборудван с изчерпателна библиотека за математически функции и операции. Нарича се клас "Math" и се намира в пакета java.lang . Математическата библиотека включва методи за основни числени операции, тригонометрия, намиране на min-max, генериране на произволни числа и логаритмични операции. В днешния урок ще се съсредоточим върху метода Math.pow() , който се използва за изчисляване на степени на числа с помощта на основа и експонента. Да започваме. Изразът „n-та степен на a“ може да бъде математически записан като n. Можем да дефинираме термините в изразите по следния начин. a - основа n - степенна степен Нека разгледаме степенната степен. Можем да го идентифицираме като броя повторения на операция за умножение. Основата е числото, което се умножава по себе си. Използване на метода Math.pow() в Java - 1Нека сега създадем прост метод на Java за изчисляване на степента на число. Моля, обърнете внимание, че в следващия пример предаваме два аргумента в метода powerFunction() , които са съответно основата и експонентата.

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;
   }
}
Ако изпълним горния примерен code, той ще върне 32. Може би си представяте защо не можем просто да напишем base^exponent. Не можем да направим това, защото Java няма оператор за степенуване, който можем да използваме в един ред code. Имайки предвид горния code, очевидно е, че трябваше да отделим доста време за писане на този метод. Освен това, ако ще изчисляваме големи мощности, методът ще отнеме значително време, за да завърши тези изчисления, тъй като използваме for цикли. В допълнение към това циклите ще ни попречат да извършваме изчисления на мощността с дробни показатели. И този метод няма добра изчислителна сложност, защото не е много благоприятен, тъй като има повече място за оптимизация. Имайки предвид колко често степенуването и други математически операции се използват от програмистите, навремето разработчиците на Java създадоха библиотека, наречена „Math“, която е посветена на улесняването на математическите операции. Следователно, instead of да пишем мощностна функция от нулата, можем да се възползваме от тази библиотека, която е включена в пакета Java Lang.

Какво представлява методът Math.pow и How да го използваме?

Math.pow може да се намери в пакета java.lang като метод на библиотеката Math. Използва се за изчисляване на степента на числа, Howто цели, така и двойни. Нека разгледаме неговия синтаксис.

public static double pow(double base, double exponent)
Както можем да видим в синтаксиса, методът java.lang.Math.pow() приема два аргумента. Първият е основата, а вторият е показателят. Това ще върне базов експонент като изход. Да видим How можем да го наречем.

Повишаване на число на степен в Java с помощта на Math.pow

Нека намерим стойността на 5 4 с помощта на 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);
    }    
}
Резултатът е 625.0. Както можете да видите, това е двойна стойност. Ако ви притеснява десетичната запетая, можем лесно да се отървем от нея, като преобразуваме числото в цяло число, Howто следва. Обърнете внимание, че променяме първия ред в главния метод.

 int answer = (int) Math.pow(5, 4);
Сега резултатът е 625. Нека използваме дробни числа Howто за основа, така и за показател и се опитаме да получим отговор. Нека видим Howва е стойността на 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);
   }
}
Това ще изведе 2,729575167846423. Ако използвате калкулатор, ще видите, че той връща същия отговор. Нека да разгледаме още един пример, преди да преминем към следващия раздел. Ще повдигнем число на отрицателна степен и ще сравним резултатите. За този пример ще изберем 4 като основа и -2 като експонента.

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.

Бърз пример: Как да закръглите отговора си

Да речем, трябва да намерим стойността на 1,25 4,5 . Отговорът е 2,729575167846423. Доста често се налага закръгляване на резултата. Нека се опитаме да получим отговор с точност до четвъртия знак след десетичната запетая. Как да го направим? Ами ако изискваме само първите 4 знака след десетичната запетая? Можем да използваме метода java.lang.Math.round за това. Въпреки това, тъй като Math.round закръгля стойността до най-близкото цяло число, ще трябва да я умножим по броя на десетичните знаци и след това да закръглим и разделим отново.

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);
     }
     
}
Резултатът е 2,73.

Как да използвате Math.pow правилно

Когато използваме метода java.lang.Math.pow , има няколко неща, които трябва да имате предвид.
  1. Ако параметърът на степента е нула, изходът ще бъде 1,0. Това е така, защото степента на нула за всяко число се определя като единица.
  2. Ако експонентният параметър е единица, изходът ще бъде основният параметър. Това е така, защото ако повдигнете което и да е число на степен 1, резултатът е същият като основата.
  3. Ако основата е отрицателна/положителна нула и параметърът на степента е отрицателно число, тогава резултатът е безкрайност. (Отрицателни нули могат да възникнат поради закръгляването на числата между нула и най-малкото представимо отрицателно ненулево число).
  4. Ако експонентният параметър е NaN, изходът също ще бъде NaN.
Нека разгледаме един пример, при който може да се случи тази 3-та ситуация.

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);
     }     
}
Това ще изведе NaN. Така че, ако вашият code води до NaN, би било разумно да проверите дали експонентният аргумент е NaN. В случай, че се чудите Howво е NaN, това означава „не е число“ и показва, че стойността не е дефинирана. Вярваме, че вече сте готови да продължите напред и да поставите lang.Math.pow() за използване във вашите applications.

Заключение

Методът java.lang.Math.pow() е чудесен начин за лесно намиране на степента на различни числа, Howто цели, така и дробни стойности. За разлика от метод, който може да напишете сами, той е силно оптимизиран и много подходящ за набор от критични за времето applications. Въпреки че извежда всички резултати като двойни числа, винаги можем да преведем стойността в цяло число, Howто направихме в примера. Освен това, за наше удобство, библиотеката java.lang.Math предоставя методи за закръгляване на резултата до предпочитания брой десетични знаци.
Коментари
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION