gamma函数与阶乘

阶乘是正整数特有的运算,正实数是没有直接的阶乘定义。但是如果把阶乘函数中离散的点连成一条光滑的曲线,就得到了正实数的阶乘。

\(\Gamma\)函数的定义为

\(\Gamma(x)=\int_0^{+\infty}t^{x-1}e^{-t}dt\;(x>0)\)

实际上,\(\Gamma\)函数就是阶乘在正实数上的扩展

\(\Gamma(n+1)=n!\)

python代码验证如下

from functools import reduce
from math import gamma

def factorial(n):
    """计算n的阶乘,即n!"""
    if n == 0:
        return 1
    return reduce(lambda x,y: x*y, range(1, n+1))

for i in range(11):
    print(i, factorial(i), math.gamma(i+1)-factorial(i))

-------------------
0 1 0.0
1 1 0.0
2 2 0.0
3 6 0.0
4 24 0.0
5 120 0.0
6 720 0.0
7 5040 0.0
8 40320 0.0
9 362880 0.0
10 3628800 0.0
posted @ 2022-04-11 11:43  Bill_H  阅读(1053)  评论(0编辑  收藏  举报