よしたく blog

ITエンジニアとして自分が知らなかったことをまとめています

math.factorialを使って階乗を計算する

背景

Project Eulermath.factorial()を使う機会が多くなってきたので簡単にまとめる。

math.factorial とは

math.factorial()は標準ライブラリの math に含まれていて、階乗が計算できるシンプルな関数になる。 引数には整数が指定でき、整数以外や負の数を与えた場合は ValueError が発生する。 また、Python3.9 からは floats を指定することが非推奨となる。

docs.python.org

実際の使われ方は以下のようになる。 ライブラリのインポートを除けば 1 行で計算できるのとてもスッキリする。

import math
print(math.factorial(5)) # 5*4*3*2*1 = 120

自作で同じことをしようとすると、以下のようになる。今回は再帰関数で表現した。別の言語で表現するとき、参考になればと思い残しておく。

def factorial(n):
    if n == 1:
        return 1
    else:
        return n * factorial(n-1)

print(factorial(5))

まとめ / 感想

今回はmath.factorial()について簡単にまとめた。 Project Euler が数学の問題を多く扱いっていることもあり、階乗を使った問題も多く出てきていた。なかなか触らない関数と出会う機会も多く楽しいので、引き続き取り組んでいきたい。