もっと便利な計算:べき乗と割り算の余り#

はじめに#

前回の記事では、Pythonにおける基本的な演算について学びました。今回は、さらに一歩進んで、プログラミングでよく使われる「べき乗(累乗)」と「割り算の余り(剰余)」について改めて詳しく見ていきましょう。

これらの計算方法は、単純な四則演算だけでは解決できない様々な問題に対処するために非常に重要です。例えば、面積や体積の計算、暗号化、周期的なパターンの検出など、多くの場面で活用されています。

べき乗(累乗)の計算#

「べき乗」とは、同じ数を何回も掛け合わせる計算です。例えば「2の3乗」は「2×2×2」を意味し、結果は8になります。

Pythonでは、べき乗を計算するために「**」演算子を使います。

Google Colabで以下のコードを実行してみましょう。

>
# べき乗の基本
print("2の3乗 =", 2 ** 3)
print("5の2乗 =", 5 ** 2)
print("10の6乗 =", 10 ** 6)

実行結果:

2の3乗 = 8
5の2乗 = 25
10の6乗 = 1000000

変数を使ったべき乗計算#

もちろん、べき乗計算も変数を使って行うことができます。

>
# 変数を使ったべき乗計算
base = 2
exponent = 10
result = base ** exponent

print(f"{base}{exponent}乗 = {result}")

実行結果:

2の10乗 = 1024

小数のべき乗#

べき乗の指数(何乗するか)は整数だけでなく、小数も指定できます。これにより、平方根(2分の1乗)などの計算も可能です。

>
# 小数のべき乗
print("16の0.5乗(平方根)=", 16 ** 0.5)
print("27の(1/3)乗(立方根)=", 27 ** (1/3))
print("2の0.5乗 =", 2 ** 0.5)  # √2の計算

実行結果:

16の0.5乗(平方根)= 4.0
27の(1/3)乗(立方根)= 3.0
2の0.5乗 = 1.4142135623730951

このように、べき乗演算子を使うことで、平方根や立方根などの計算も簡単に行うことができます。

負の指数#

べき乗の指数が負の数の場合、その数の逆数のべき乗として計算されます。例えば、2の-3乗は、(1/2)の3乗、つまり1/(2の3乗)として計算されます。

>
# 負の指数
print("2の-3乗 =", 2 ** -3)  # 1/(2^3) = 1/8
print("10の-2乗 =", 10 ** -2)  # 1/(10^2) = 1/100

実行結果:

2の-3乗 = 0.125
10の-2乗 = 0.01

大きな数値のべき乗#

Pythonの素晴らしい特徴の一つは、非常に大きな数値も簡単に扱えることです。例えば、100の20乗という非常に大きな数値も計算できます。

>
# 大きな数値のべき乗
large_number = 100 ** 20
print(f"100の20乗 = {large_number}")
print(f"桁数: {len(str(large_number))}")

実行結果:

100の20乗 = 10000000000000000000000000000000000000000
桁数: 41

このように、Pythonでは桁数の多い大きな数値も簡単に扱うことができます。

mathモジュールを使ったべき乗計算#

Pythonの標準ライブラリであるmathモジュールにも、べき乗を計算する関数があります。

モジュールとは?#

ここで少し「モジュール」について説明しておきましょう。モジュールとは、関連する機能(関数や変数など)をまとめたパッケージのことです。Pythonには様々な標準モジュール(最初からPythonに組み込まれているモジュール)があり、mathモジュールもそのひとつです。

モジュールを使うには、import文を使って読み込む必要があります。これは、「このモジュールの機能を使いますよ」と宣言するようなものです。今回は数学関数を使うために、「import math」と書きます。

モジュールについては後の記事で詳しく学びますが、今回は「数学関数を使うには最初にimport mathと書く必要がある」と覚えておいてください。

>
# mathモジュールを使ったべき乗計算
import math

print("math.pow(2, 3) =", math.pow(2, 3))
print("math.sqrt(16) =", math.sqrt(16))  # 平方根(2分の1乗)

実行結果:

math.pow(2, 3) = 8.0
math.sqrt(16) = 4.0

math.pow()関数は**演算子と似ていますが、常に浮動小数点数の結果を返します。math.sqrt()関数は平方根(2分の1乗)を計算するための専用関数です。

割り算の余り(剰余)の計算#

「割り算の余り」または「剰余」とは、ある数を別の数で割った時の余りのことです。例えば、7を3で割ると、商は2で余りは1になります。

Pythonでは、割り算の余りを計算するために「%」演算子(モジュロ演算子)を使います。

>
# 剰余(余り)の基本
print("7 ÷ 3 の余りは", 7 % 3)
print("10 ÷ 3 の余りは", 10 % 3)
print("15 ÷ 5 の余りは", 15 % 5)  # 割り切れる場合は0

実行結果:

7 ÷ 3 の余りは 1
10 ÷ 3 の余りは 1
15 ÷ 5 の余りは 0

剰余計算は、偶数・奇数の判定や周期的なパターン生成などで役立ちます。

変数を使った剰余計算#

剰余計算も変数を使って行うことができます。

>
# 変数を使った剰余計算
dividend = 17  # 割られる数
divisor = 5    # 割る数
remainder = dividend % divisor

print(f"{dividend} ÷ {divisor} = {dividend // divisor} 余り {remainder}")

実行結果:

17 ÷ 5 = 3 余り 2

負の数での剰余計算#

負の数に対する剰余計算は、言語によって動作が異なることがありますが、Pythonでは数学的な定義に従って計算されます。

>
# 負の数での剰余計算
print("17 % 5 =", 17 % 5)
print("-17 % 5 =", -17 % 5)
print("17 % -5 =", 17 % -5)
print("-17 % -5 =", -17 % -5)

実行結果:

17 % 5 = 2
-17 % 5 = 3
17 % -5 = -3
-17 % -5 = -2

負の数での剰余計算は直感的ではないかもしれませんが、Pythonでは「結果は常に除数と同じ符号になる」というルールがあります。

小数に対する剰余計算も可能ですが、使用するシチュエーションは少ないかもしれません。

>
# 小数に対する剰余計算
# 小数に対する剰余計算
print("7.5 % 2.5 =", 7.5 % 2.5)
print("10.5 % 3.1 =", 10.5 % 3.1)

実行結果:

7.5 % 2.5 = 0.0
10.5 % 3.1 = 1.1999999999999997

まとめ#

この記事では、Pythonにおけるべき乗と剰余の計算について詳しく学びました。

  • べき乗(**演算子)を使って同じ数を何度も掛け合わせる計算ができる
  • 平方根や立方根も小数のべき乗として計算できる
  • 非常に大きな数のべき乗も簡単に計算できる
  • 剰余(%演算子)を使って割り算の余りを求められる
  • 偶数・奇数の判定や周期的なパターン生成に剰余計算が役立つ

べき乗と剰余の計算は、単純な四則演算だけでは解決できない様々な問題を解決するために非常に重要です。今回学んだ知識をぜひ実際のプログラミングで活用してみてください。