CodeGym /Java Blog /ランダム /Java での Math.pow() メソッドの使用
John Squirrels
レベル 41
San Francisco

Java での Math.pow() メソッドの使用

ランダム グループに公開済み
Java 言語には、数学関数と演算のための包括的なライブラリが装備されています。これは「Math」クラスと呼ばれ、java.langパッケージに存在します。Math ライブラリには、基本的な数値演算、三角法、最小値と最大値の計算、乱数の生成、および対数演算のメソッドが含まれています。今日のチュートリアルでは、基数と指数を使用して数値のべき乗を計算するために使用されるMath.pow()メソッドに焦点を当てます。始めましょう。「a の n 乗」という式は、数学的にはnと書くことができます。。式内の用語は次のように定義できます。a - 基数 n - 指数 指数について考えてみましょう。これは、乗算演算が繰り返される回数として識別できます。底はそれ自身を乗算する数値です。Java での Math.pow() メソッドの使用 - 1ここで、数値の累乗を計算する簡単な Java メソッドを作成してみましょう。次の例では、2 つの引数(それぞれ基数と指数) を 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 には 1 行のコードで使用できるべき乗演算子がないため、これを行うことはできません。上記のコードを考慮すると、このメソッドの作成にかなりの時間を費やす必要があることは明らかです。さらに、高いべき乗を計算する場合、このメソッドは for ループを使用するため、これらの計算を完了するまでにかなりの時間がかかります。それに加えて、ループにより、小数部の指数を使用した電力計算を実行できなくなります。また、この方法は、最適化の余地が多くあるため、あまり好ましい計算量ではありません。プログラマーが累乗やその他の数学演算をどの程度頻繁に使用するかを考慮すると、昔、Java の開発者は数学的演算を容易にすることに特化した「Math」というライブラリを作成しました。したがって、べき乗関数を最初から作成する代わりに、Java Lang パッケージに含まれるこのライブラリを利用できます。

Math.pow メソッドとは何ですか?またその使用方法は何ですか?

Math.pow は、 Math ライブラリのメソッドとして java.lang パッケージに含まれています。これは、整数と倍精度の両方の数値のべき乗を計算するために使用されます。その構文を考えてみましょう。

public static double pow(double base, double exponent)
構文から分かるように、java.lang.Math.pow()メソッドは 2 つの引数を受け取ります。最初のものは基数で、2 つ目は指数です。これにより、出力として基底指数が返されます。どのように呼び出せるかを見てみましょう。

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 です。ご覧のとおり、これは 2 倍の値です。小数点が気になる場合は、次のように数値を整数にキャストすることで簡単に取り除くことができます。main メソッド内の最初の行を変更していることに注意してください。

 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 が出力されます。電卓を使用すると、同じ答えが返されることがわかります。次のセクションに進む前に、もう 1 つの例を見てみましょう。数値を負の累乗して結果を比較します。この例では、底として 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 位まで正確に答えられるようにしてみましょう。どうやってするの?小数点以下最初の 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 になります。これは、任意の数値の 0 の累乗が 1 として定義されているためです。
  2. 指数パラメータが 1 の場合、出力は基本パラメータになります。これは、任意の数値を 1 乗しても、結果は底と同じになるためです。
  3. 基数が負または正のゼロで、指数パラメータが負の数の場合、結果は無限大になります。(負のゼロは、ゼロと表現可能な最小の負の非ゼロ数の間の数値の丸めが原因で発生する可能性があります)。
  4. 指数パラメータが NaN の場合、出力も NaN になります。
この 3 番目の状況が発生する可能性がある 1 つの例を考えてみましょう。

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 が何なのか疑問に思っている場合のために説明します。NaN は「数値ではない」という意味で、値が定義されていないことを示します。これで皆さんは、アプリケーションでlang.Math.pow()を使用する準備ができたと思います。

結論

java.lang.Math.pow ()メソッドは、整数と小数の両方のさまざまな数値の累乗を簡単に求める優れた方法です。自分で作成するメソッドとは異なり、高度に最適化されており、タイム クリティカルなさまざまなアプリケーションに適しています。すべての結果は double として出力されますが、例で行ったようにいつでも値を整数にキャストできます。さらに、利便性を考慮して、java.lang.Mathライブラリには、結果を適切な小数点以下の桁数に四捨五入するメソッドが用意されています。
コメント
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION