Java の Math.pow メソッド

JavaBeginner
オンラインで実践に進む

はじめに

pow() メソッドは、ある数を他の数の累乗にした値を求めるために使用されます。これは Java の Math クラスの一部であり、double 型の値を返します。出力を他の型に変換したい場合、明示的なキャストが必要であることに注意する必要があります。この実験では、さまざまな例を使って pow() メソッドをどのように使用するか学びます。

セットアップ

~/project ディレクトリに PowDemo.java という名前の新しいファイルを作成し、テキストエディタで開きます。

以下のコードをファイルに追加して保存します。

import java.lang.Math;

public class PowDemo {
    public static void main(String[] args) {

    }
}

コードを実行するには、ターミナルを開き、~/project ディレクトリに cd して、次のコマンドを入力します。

javac PowDemo.java
java PowDemo

pow() メソッドの使用

pow() メソッドを使用するには、Math.pow() 関数を呼び出し、基数と指数の値を引数として渡します。このメソッドの一般的なシグネチャを以下に示します。

public static double pow(double base, double power)

import 文の後に、次のコードを main 関数に追加します。

double d1 = Math.pow(3, 5);
double d2 = Math.pow(3.5, 1.5);
int i = (int) Math.pow(3.5, 1.5); // int 型にキャストが必要

System.out.println("3 の 5 乗:" + d1);
System.out.println("3.5 の 1.5 乗:" + d2);
System.out.print("3.5 の 1.5 乗 (int 型): " + i);

このコードブロックは、3 の 5 乗、3.5 の 1.5 乗、および整数値に対する 3.5 の 1.5 乗の結果を計算し、コンソールに値を出力します。

平方根と立方根の求め方

pow() メソッドを使って数値の平方根や立方根を求めることもできます。このステップでは、pow() メソッドを使って 16 の平方根と 27 の立方根を求めます。

ステップ 2 で書いたコードの後に、次のコードを main 関数に追加します。

double squareRoot = Math.pow(16, 0.5);
double cubeRoot = Math.pow(27, (1.0 / 3));

System.out.println("16 の平方根は:" + squareRoot);
System.out.print("27 の立方根は:" + cubeRoot);

このコードブロックは、pow() メソッドを使って 16 の平方根と 27 の立方根を計算し、結果をコンソールに出力します。

特殊ケースの対処

pow() メソッドにはいくつかの特殊ケースがあり、言及する価値があります。このステップでは、これらの特殊ケースのいくつかをテストします。

ステップ 3 で書いたコードの後に、次のコードを main 関数に追加します。

System.out.println("第二パラメータがゼロの場合:");
System.out.println(Math.pow(5.0, 0.0));
System.out.println(Math.pow(5.0, -0.0));

System.out.println("第二パラメータが 1 の場合:");
System.out.println(Math.pow(5.0, 1));

System.out.println("第二パラメータが NaN の場合:");
System.out.println(Math.pow(5.0, Double.NaN));

System.out.println("第一パラメータが NaN で第二パラメータがゼロ以外の場合:");
System.out.println(Math.pow(Double.NaN, 14));

System.out.println("第一パラメータが NaN で第二パラメータがゼロの場合:");
System.out.println(Math.pow(Double.NaN, 0));

このコードブロックは、次の特殊ケースをテストします。

  • 第二パラメータがゼロの場合、1.0 を返す
  • 第二パラメータが 1 の場合、第一パラメータを返す
  • 第二パラメータが NaN の場合、NaN を返す
  • 第一パラメータが NaN で第二パラメータがゼロ以外の場合、NaN を返す
  • 第一パラメータが NaN で第二パラメータがゼロの場合、1 を返す

高度な数学の概念のテスト

このステップでは、pow() メソッドを使っていくつかの高度な数学的概念をテストします。

ステップ 4 で書いたコードの後に、次のコードを main 関数に追加します。

System.out.print("-1 の平方根:" + Math.pow(-1, 0.5));
System.out.println("正の値を無限大にべき乗:" + Math.pow(5, Double.POSITIVE_INFINITY));
System.out.print("正の値を負の無限大にべき乗:" + Math.pow(5, Double.NEGATIVE_INFINITY));

このコードブロックは、次のケースをテストします。

  • -1 の平方根を計算すると、NaN が返されます。
  • 正の値を無限大にべき乗すると、正の無限大が返されます。
  • 正の値を負の無限大にべき乗すると、0 が返されます。

コードを保存して実行する

PowDemo.java に対して行った変更を保存します。ターミナルを開き、~/project ディレクトリに cd して、次のコマンドを入力してコードを実行します。

javac PowDemo.java
java PowDemo

これにより、PowDemo.java がコンパイルされて実行されます。プログラムの出力は以下のようになるはずです。

3の5乗: 243.0
3.5の1.5乗: 6.547900426854397
3.5の1.5乗(int型): 6
16の平方根は: 4.0
27の立方根は: 3.0
第二パラメータがゼロの場合:
1.0
1.0
第二パラメータが1の場合:
5.0
第二パラメータがNaNの場合:
NaN
第一パラメータがNaNで第二パラメータがゼロ以外の場合:
NaN
第一パラメータがNaNで第二パラメータがゼロの場合:
1.0
-1の平方根: NaN
正の値を無限大にべき乗: Infinity
正の値を負の無限大にべき乗: 0.0

まとめ

この実験では、Java における java.lang.Math クラスの pow() メソッドの使い方を学びました。また、このメソッドを使用する際に発生する可能性のあるいくつかの特殊ケースについても見てきました。pow() メソッドは、特に高度な数学的概念を計算する際に、計算アルゴリズムにおいて重要です。