Pythonアルゴリズム

Pythonで階乗を再帰計算

n! = n × (n−1)!を、0または1の基底条件まで繰り返します。

Pythonで階乗を再帰計算とは?

n! = n × (n−1)!を、0または1の基底条件まで繰り返します。

再帰関数でn!を計算します。

どのような場面で使う?

  • アルゴリズムとデータ構造を理解する。
  • 各ステップと境界ケースを確認する。
  • 実行時間とメモリ使用量を比較する。

サンプルコード

コードを実行 →
main.py
def factorial(number):
    if number < 0:
        raise ValueError("Factorial is undefined for negative numbers")
    if number <= 1:
        return 1
    return number * factorial(number - 1)

print(factorial(6))

期待される出力

720

仕組み

各呼び出しでnを減らすため、時間とコールスタック深度はO(n)です。

値を変更し、PythonをインストールせずにCodeUtilityオンラインPythonコンパイラで実行できます。

練習問題

入力値と境界ケースを変更し、より大きなデータでも動作を確認してください。

  1. 空入力、1要素、重複値を試す。
  2. 各ステップの状態を表示する。
  3. 別の解法と性能を比較する。
Python IDEで実行 →