math.factorialを使って階乗を計算する
背景
Project Euler でmath.factorial()
を使う機会が多くなってきたので簡単にまとめる。
math.factorial とは
math.factorial()
は標準ライブラリの math に含まれていて、階乗が計算できるシンプルな関数になる。
引数には整数が指定でき、整数以外や負の数を与えた場合は ValueError が発生する。
また、Python3.9 からは floats を指定することが非推奨となる。
実際の使われ方は以下のようになる。 ライブラリのインポートを除けば 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 が数学の問題を多く扱いっていることもあり、階乗を使った問題も多く出てきていた。なかなか触らない関数と出会う機会も多く楽しいので、引き続き取り組んでいきたい。