Pythonで再帰関数を使って数値の累乗を計算する方法
Pythonでは、再帰(リカーシブ)処理を利用することで、数値の累乗をシンプルに計算できます。本記事では、ユーザーから数値と指数を入力として受け取り、再帰関数によって累乗を求めるプログラムを紹介します。
再帰による累乗計算の仕組み
再帰とは、関数が自分自身を呼び出すことで処理を繰り返す手法です。累乗の計算では、「数値 × 数値^(指数-1)」という関係が成り立つため、指数を1つずつ減らしながら自分自身を呼び出すことで、最終的な結果を得られます。
サンプルコード
以下のプログラムは、ユーザーから数値(底)と指数を受け取り、再帰関数 rpower() を使って累乗を計算します。この関数は、数値を再帰的に繰り返し掛け合わせることで結果を返します。
def rpower(num,idx):
if(idx==1):
return(num)
else:
return(num*rpower(num,idx-1))
base=int(input("Enter number: "))
exp=int(input("Enter index: "))
rpow=rpower(base,exp)
print("{} raised to {}: {}".format(base,exp,rpow))コードの解説
- 基本ケース: 指数が1になった時点で、そのまま数値を返して再帰を終了します。
- 再帰ケース: 指数が1より大きい場合、数値に「同じ数値の指数-1の累乗」を掛けた値を返します。
- 入力処理:
input()関数で受け取った文字列はint()で整数に変換されます。
実行例
以下は実行結果の一例です。
Enter number: 10 Enter index: 3 10 raised to 3: 1000
このように、10の3乗である「1000」が正しく出力されていることがわかります。
注意点
再帰処理は可読性が高い一方で、大きな指数を扱うと呼び出し回数が増え、Pythonの再帰上限(デフォルトで約1000回)に達する可能性があります。また、負の指数や0には対応していないため、実用性を高めたい場合は組み込み関数 pow() やべき乗演算子 ** の使用も検討するとよいでしょう。
-
Pythonのリストから最大値を取得する方法|max()関数の使い方を解説
Pythonで最大値を見つけるには?Pythonには、リストなどのイテラブル(反復可能なオブジェクト)の中から最大の数値を簡単に取り出すための組み込み関数 max() が用意されています。この関数は、カンマ区切りで渡した複数の数値、あるいはリスト・タプルなどのコレクションを引数に受け取ることができます。基本的な使い方まず、複数の数値を直接引数として渡す例を見てみましょう。>>> max(10, 23, 43, 21) 43このように、max() に数値をカンマ区切りで渡すと、その中で最も大きい値である 43 が返されます。リストから最大値を取得する次に、リストを引数として渡す
-
Python関数の引数の数を取得する方法【inspectモジュール活用】
Python関数の引数の数を調べるには? たとえば、次のようなスクリプト qux.py があるとします。 #qux.py def aMethod1(arg1, arg2): pass def aMethod2(arg1, arg2, arg3, arg4, arg5): pass このスクリプトの中身が分からない(ソースコードにアクセスできない)場合でも、Pythonの標準ライブラリである inspect モジュールを使えば、関数が受け取る引数の数や名前を簡単に調べることができます。 inspectモジュールで引数の一覧を取得する まず、inspect モジュールをインポー