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