【Java】累乗の計算ならpow!使い方を解説!
累乗を計算する場合にはMathクラスのpowメソッドを使用します。
Mathクラスのpowメソッドは、指定された数値の累乗を計算して取得するメソッドとなります。
累乗の計算で例えば、2の3乗なら「2*2*2」と自分で計算して算出することも可能ですが、100乗になるととても面倒です。
しかし、powメソッドを使えば簡単に累乗を計算した値を返してくれるので非常に便利です。
今回はMathクラスのpowをメソッドを使って以下の場合での累乗の計算を行っていきます。
⚫︎ 正の数を累乗する場合
⚫︎ 負の数を累乗する場合
⚫︎ 無限大を累乗する場合
⚫︎ 0を累乗する場合
⚫︎ NaN(非数)を累乗する場合
また、powをメソッドをの特例パターンについても紹介していきます。
⚫︎ NaN(非数)を累乗する場合
⚫︎ 基数の絶対値が1未満、指数が無限大で累乗する場合
⚫︎ 基数が正の無限大で指数が0未満で累乗する場合
目次
powメソッドとは
Mathクラスのpow()メソッドは、指定された数値の累乗を計算して取得するメソッドとなります。
powメソッドの書き方
powメソッドの構文は下記となります。
1 |
Math.pow(基数, 指数); |
パラメータ
⚫︎ 基数:
累乗を計算するための基数を指定する (3の2乗の3にあたる部分)
⚫︎ 指数:
累乗を計算するための指数を指定する(3の2乗の2にあたる部分)
powの()に第1引数の基数と第2引数の指数を指定することで指定した基数の指数分、累乗した値を返します。
例えばMath.pow(2, 4);の場合、2の4乗として16を返します。
引数に指定できる数値はどちらともdouble型、float型、int型、long型のどれでも指定することができます。
累乗を計算するサンプルコード
累乗を計算するサンプルコードを紹介します。
正の数を累乗する場合
例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
// 累乗を計算する public class Main { public static void main(String[] args) throws Exception { int num1 = 3; int num1_m = 5; double num2 = 3.6; double num2_m = 4.5; // 累乗に正の数を指定した場合 System.out.println( num1 + "の" + num1_m + "乗は" + Math.pow(num1, num1_m)); System.out.println( num2 + "の" + num2_m + "乗は" + Math.pow(num2, num2_m)); } } |
出力結果
3の5乗は243.0
3.6の4.5乗は318.68472926768237
powメソッドで指定したパラメータの数値の累乗を計算した結果を表示しています。
負の数を累乗する場合
例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
// 累乗を計算する public class Main { public static void main(String[] args) throws Exception { int num1 = 3; int num1_m = -5; double num2 = 3.6; double num2_m = -4; // 累乗に負の数を指定した場合 System.out.println( num1 + "の" + num1_m + "乗は" + Math.pow(num1, num1_m)); System.out.println( num2 + "の" + num2_m + "乗は" + Math.pow(num2, num2_m)); } } |
出力結果
3の-5乗は0.00411522633744856
3.6の-4.0乗は0.0059537418076512725
累乗に負の数を指定した場合は少数の値で表示されます。
無限大を累乗する場合
例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
// 累乗を計算する public class Main { public static void main(String[] args) throws Exception { int num1 = 3; double num2 = 3.6; // 累乗に無限大を指定した場合 System.out.println( num1 + "の累乗が正の無限大である場合は" + Math.pow(num1, Double.POSITIVE_INFINITY)); System.out.println( num2 + "の累乗が負の無限大である場合は" + Math.pow(num2, Double.NEGATIVE_INFINITY)); } } |
出力結果
3の累乗が正の無限大である場合はInfinity
3.6の累乗が負の無限大である場合は0.0
累乗に正の無限大を指定する場合は「Infinity」を返し、負の無限大を指定する場合は0.0を返します。
0を累乗する場合
例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
// 累乗を計算する public class Main { public static void main(String[] args) throws Exception { int num1 = 3; int num1_m = 0; // 累乗に0を指定した場合 System.out.println( num1 + "の" + num1_m + "乗は" + Math.pow(num1, num1_m)); } } |
出力結果
3の0乗は1.0
累乗に0を指定した場合は1.0を返します。
累乗計算の特例パターンのサンプルコード
powメソッドで累乗計算する際に特例のパターンがありますので特例パターンのサンプルコードを紹介します。
NaN(非数)を累乗する場合
例
1 2 3 4 5 6 7 8 9 10 11 12 13 |
// 累乗を計算する public class Main { public static void main(String[] args) throws Exception { int num1 = 3; // 累乗にNaNを指定した場合 System.out.println( num1 + "の累乗にNaNを指定した場合は" + Math.pow(num1, Double.NaN)); } } |
出力結果
3の累乗にNaNを指定した場合はNaN
累乗にNaNを指定した場合はNaNを返します。
基数の絶対値が1未満で指数が無限大の場合
例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
// 累乗を計算する public class Main { public static void main(String[] args) throws Exception { double num1 = 0.5; double num2 = 0.4; // 累乗に無限大を指定した場合 System.out.println( num1 + "の乗数が正の無限大である場合は" + Math.pow(num1, Double.POSITIVE_INFINITY)); System.out.println( num2 + "の乗数が負の無限大である場合は" + Math.pow(num2, Double.NEGATIVE_INFINITY)); } } |
出力結果
0.5の乗数が正の無限大である場合は0.0
0.4の乗数が負の無限大である場合はInfinity
基数の絶対値が1より小さく、乗数が正の無限大の場合は「0」になり、第2パラメータが負の無限大の場合は「Infinity」になります。
基数が正の無限大で指数が0未満の場合
例
1 2 3 4 5 6 7 8 9 10 |
// 累乗を計算する public class Main { public static void main(String[] args) throws Exception { // 累乗に無限大を指定した場合 System.out.println( "正の無限大の乗数が負の整数である場合は" + Math.pow(Double.POSITIVE_INFINITY, -3)); } } |
出力結果
正の無限大の乗数が負の整数である場合は0.0
基数の正の無限大で、乗数が負の整数である場合は「正の0」になります。
今回のポイント
powで累乗を計算
累乗を計算するにはMathクラスのpowメソッドを使用する。
⚫︎ Mathクラスのpowメソッドで累乗を計算する
⚫︎ powメソッドの第1パラメータは基数、第2パラメータは指数を指定する
(第1パラメータをa、第2パラメータをbとすると、Mathクラスのpowメソッドは「aのb乗」を返す)
⚫︎ powメソッドの第2パラメータが「NaN」の場合は、「NaN」を返す(特例のパターン)
⚫︎ powメソッドの第1パラメータの絶対値が1より小さく、第2パラメータが正の無限大の場合は「正の0」を返す(特例のパターン)
⚫︎ powメソッドの第1パラメータの絶対値が1より小さく第2パラメータが負の無限大の場合は「Infinity」を返す(特例のパターン)
⚫︎ powメソッドの第1パラメータが正の無限大で第2パラメータが負の整数である場合は「正の0」を返す(特例パターン)
⚫︎ powメソッドのパラメータに0を指定する場合は、1を返す
ST
株式会社flyhawkのSTです。フライテックメディア事業部でのメディア運営・ライター業務なども担当。愛機はMac Book AirとThinkPad。好きな言語:swift、JS系(Node.js等)。好きなサーバー:AWS。受託開発やプログラミングスクールの運営をしております。ご気軽にお問い合わせください。