CodeGym/Java Blog/무작위의/Java에서 Math.pow() 메서드 사용
John Squirrels
레벨 41
San Francisco

Java에서 Math.pow() 메서드 사용

무작위의 그룹에 게시되었습니다
회원
Java 언어는 수학 함수 및 연산을 위한 포괄적인 라이브러리를 갖추고 있습니다. "Math" 클래스라고 하며 java.lang 패키지 에 있습니다 . 수학 라이브러리에는 기본 수치 연산, 삼각법, 최소-최대 찾기, 난수 생성 및 로그 연산을 위한 방법이 포함되어 있습니다. 오늘 튜토리얼에서는 밑수와 지수를 사용하여 숫자의 거듭제곱을 계산하는 데 사용되는 Math.pow() 메서드에 중점을 둘 것입니다. 시작하자. 'a의 n승'이라는 표현은 수학적으로 n 으로 쓸 수 있습니다.. 식에서 용어를 다음과 같이 정의할 수 있습니다. a - 밑수 n - 지수 지수를 생각해 봅시다. 곱셈 연산이 반복되는 횟수로 식별할 수 있습니다. 밑은 자신을 곱한 수입니다. Java에서 Math.pow() 메서드 사용 - 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;
   }
}
위의 예제 코드를 실행하면 32가 반환됩니다. 단순히 base^exponent를 쓸 수 없는 이유를 상상할 수 있습니다. Java에는 한 줄의 코드에서 사용할 수 있는 지수 연산자가 없기 때문에 그렇게 할 수 없습니다. 위의 코드를 고려하면 이 메서드를 작성하는 데 꽤 많은 시간을 소비해야 한다는 것이 분명합니다. 또한 높은 거듭제곱을 계산하려는 경우 for 루프를 사용하기 때문에 메서드에서 이러한 계산을 완료하는 데 상당한 시간이 걸립니다. 그 외에도 루프는 분수 지수로 전력 계산을 수행하는 것을 방지합니다. 그리고 이 방법은 최적화를 위한 더 많은 공간이 있기 때문에 그다지 유리하지 않기 때문에 계산 복잡성이 좋지 않습니다. 프로그래머가 거듭제곱 및 기타 수학 연산을 얼마나 자주 사용하는지 고려하여 예전에 Java 개발자들은 수학적 연산을 용이하게 하는 데 전념하는 'Math'라는 라이브러리를 만들었습니다. 따라서 전원 함수를 처음부터 작성하는 대신 Java Lang 패키지에 포함된 이 라이브러리를 활용할 수 있습니다.

Math.pow 메서드는 무엇이며 어떻게 사용합니까?

Math.pow는 java.lang 패키지에서 Math 라이브러리의 메서드로 찾을 수 있습니다. 정수와 복식 모두 숫자의 거듭제곱을 계산하는 데 사용됩니다. 구문을 고려해 봅시다.
public static double pow(double base, double exponent)
구문에서 볼 수 있듯이 java.lang.Math.pow() 메서드는 두 개의 인수를 사용합니다. 첫 번째는 밑이고 두 번째는 지수입니다. 기본 지수를 출력으로 반환합니다 . 어떻게 부를 수 있는지 봅시다.

Math.pow를 사용하여 Java에서 숫자를 거듭제곱하기

Math.pow를 사용하여 5 4 의 값을 찾아봅시다 .
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입니다. 보시다시피 이중 값입니다. 소수점이 귀찮다면 다음과 같이 숫자를 정수로 변환하여 쉽게 제거할 수 있습니다. 우리는 메인 메소드 내부의 첫 번째 줄을 변경하고 있음에 유의하십시오.
int answer = (int) Math.pow(5, 4);
이제 결과는 625입니다. 밑수와 지수 모두에 분수를 사용하고 답을 구해 봅시다. 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. 지수 매개변수가 0이면 출력은 1.0이 됩니다. 이는 모든 숫자에 대한 0의 거듭제곱이 1로 정의되기 때문입니다.
  2. 지수 매개변수가 1이면 출력은 기본 매개변수가 됩니다. 숫자를 1의 거듭제곱으로 올리면 결과가 밑과 같기 때문입니다.
  3. 밑이 음수/양수 0이고 지수 매개변수가 음수이면 결과는 무한대입니다. (음수 0은 0과 0이 아닌 가장 작은 표현 가능한 음수 사이의 반올림으로 인해 발생할 수 있습니다.)
  4. 지수 매개변수가 NaN이면 출력도 NaN이 됩니다.
이 세 번째 상황이 발생할 수 있는 한 가지 사례를 고려해 보겠습니다.
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이 출력됩니다. 따라서 코드 결과가 NaN이면 지수 인수가 NaN인지 확인하는 것이 좋습니다. NaN이 무엇인지 궁금하다면 '숫자가 아님'을 의미하며 값이 정의되지 않았음을 나타냅니다. 이제 lang.Math.pow()를 애플리케이션에 사용할 준비가 모두 끝났다고 생각합니다 .

결론

java.lang.Math.pow () 메서드는 정수와 소수 값 모두에서 다양한 숫자의 거듭제곱을 쉽게 찾을 수 있는 좋은 방법입니다. 직접 작성할 수 있는 방법과 달리 고도로 최적화되어 있으며 시간이 중요한 다양한 응용 프로그램에 매우 적합합니다. 모든 결과를 double로 출력하지만 예제에서와 같이 항상 값을 정수로 캐스트할 수 있습니다. 또한 편의상 java.lang.Math 라이브러리는 결과를 원하는 소수 자릿수로 반올림하는 메서드를 제공합니다.
코멘트
  • 인기
  • 신규
  • 이전
코멘트를 남기려면 로그인 해야 합니다
이 페이지에는 아직 코멘트가 없습니다