nの階乗の計算 (factorial) (Python)

nの階乗は $$(n - ( n - 1 ) ) \times (n - ( n - 2 ) ) \times (n - ( n - 3 ) ) ... \times (n - ( n - n ) )$$と書けるだろう。

例えばnが4の場合は、

$$ (4 - (4 - 1 ) ) \times (4 - ( 4 - 2 ) ) \times (4 - ( 4 - 3 ) ) \times (4 - ( 4 - 4 ) )$$

となる。

実際に計算してみれば、

$$1 \times 2 \times 3 \times 4 = 24$$ となり正しい値となった。

この計算式をPythonでfactorial (階乗) 関数として定義しておこう。ただし、n = 0の階乗は1とする。

def factorial(n):

    res = 1

    for i in range(1, n + 1):
        res *= i

    return res


print(factorial(4)) 

24が出力された。

このようなアルゴリズムはnumpyとかですでに定義されてるかもしれないが、他のプログラミングでも移植できることを考えれば、自分で一度作ってみることに損はないだろう。