C#におけるべき乗計算
プログラミングでは、ある数値のn乗(例: 2の10乗、5の3乗など)を計算したい場面があります。このような計算を「べき乗」または「累乗」と呼びます。
C#では、標準の数学関数を提供するSystem.Mathクラスに、このべき乗計算を行うためのPow()メソッドが用意されています。
Math.Pow() メソッドの基本
Math.Pow()は、2つの引数を受け取り、べき乗の結果を返す静的メソッドです。
基本構文:
Math.Pow(double x, double y)
x: 底(てい)。べき乗の基になる数値。y: 指数(しすう)。xを何乗するかを指定する数値。
このメソッドは、xのy乗($x^y$)を計算します。
Math.Pow() の特徴: double 型
Math.Pow()メソッドを使用する上で最も重要な点は、引数と戻り値がすべてdouble型(倍精度浮動小数点数)であることです。
たとえint型の値(例: 5や3)を引数として渡しても、それらは暗黙的にdouble型に変換されて計算され、結果もdouble型として返されます。
コード例1: 基本的なべき乗計算
5の3乗($5^3 = 5 \times 5 \times 5 = 125$)を計算する例です。
using System;
public class PowBasicExample
{
public static void Main()
{
double baseValue = 5;
double exponent = 3;
// 5 の 3 乗を計算
double result = Math.Pow(baseValue, exponent);
Console.WriteLine($"{baseValue} の {exponent} 乗は {result} です。");
}
}
出力結果:
5 の 3 乗は 125 です。
int型で結果を扱いたい場合の注意点
計算結果が整数であることがわかっていても、Math.Pow()の戻り値はdouble型です。もし結果をint型の変数に代入したい場合は、明示的な型変換(キャスト)が必要です。
using System;
public class PowCastExample
{
public static void Main()
{
int baseValueInt = 4;
int exponentInt = 5; // 4の5乗 = 1024
// Math.Pow の結果は double 型
double resultDouble = Math.Pow(baseValueInt, exponentInt);
// int 型の変数に格納するにはキャストが必要
int resultInt = (int)resultDouble;
Console.WriteLine($"計算結果 (double): {resultDouble}");
Console.WriteLine($"キャスト後の結果 (int): {resultInt}");
// キャスト時に小数点以下は切り捨てられる
// (例: 3.5 の 2.5 乗など、結果が整数にならない場合)
double nonIntegerResult = Math.Pow(3.5, 2.5);
Console.WriteLine($"---");
Console.WriteLine($"元の値: {nonIntegerResult}"); // 約 22.917
Console.WriteLine($"intキャスト後: {(int)nonIntegerResult}"); // 22
}
}
出力結果:
計算結果 (double): 1024
キャスト後の結果 (int): 1024
---
元の値: 22.917260586968038
intキャスト後: 22
応用: 平方根(ルート)の計算
Math.Pow()の指数(y)には、0.5(1/2)のような小数を指定することもできます。yに0.5を指定すると、xの平方根(ルート)を計算できます。
using System;
public class PowRootExample
{
public static void Main()
{
double value = 64;
// 64 の 0.5 乗(平方根)を計算
double squareRoot = Math.Pow(value, 0.5);
Console.WriteLine($"{value} の平方根 (0.5乗) は {squareRoot} です。");
// 参考: 平方根の計算には Math.Sqrt() も使用できる
// Console.WriteLine($"Math.Sqrt の結果: {Math.Sqrt(value)}");
}
}
出力結果:
64 の平方根 (0.5乗) は 8 です。
まとめ
Math.Pow(x, y)は、C#でべき乗($x^y$)を計算するための標準的なメソッドです。
引数と戻り値がdouble型であることを常に意識し、結果を整数として扱いたい場合は(int)などで適切にキャストする必要があります。また、指数に小数を使用することで平方根なども計算できる柔軟性を持っています。
