一、问题介绍
斯特灵(Stirling)近似式,是数学分析中,用于求阶乘近似值的一个常用公式,其简单的表述形式为:
二、Python实现
使用Python,循环从n=1至n=98,分别输出n的阶乘值、斯特灵公式近似值,以及二者的比值。程序如下:
import math
ans = 1
appro = 1
for n in range(1, 99):
appro = math.sqrt(2 * math.pi * n) * math.pow(n / math.e, n)
print("斯特灵近似值:", appro)
ans *= n
print("真实值:", ans)
print("比值:", appro / ans)
程序输出:
"C:\Program Files\Python312\python.exe" "C:\Users\lycbu\Desktop\Python组合数学\第 4 章 《生成排列和组合》\generating_sequence.py"
斯特灵近似值: 0.9221370088957891
真实值: 1
比值: 0.9221370088957891
斯特灵近似值: 1.9190043514889832
真实值: 2
比值: 0.9595021757444916
斯特灵近似值: 5.836209591345864
真实值: 6
比值: 0.972701598557644
斯特灵近似值: 23.506175132893294
真实值: 24
比值: 0.9794239638705539
斯特灵近似值: 118.0191679575901
真实值: 120
比值: 0.9834930663132508
斯特灵近似值: 710.078184642185
真实值: 720
比值: 0.9862197008919236
斯特灵近似值: 4980.395831612462
真实值: 5040
比值: 0.9881737761135837
斯特灵近似值: 39902.39545265671
真实值: 40320
比值: 0.9896427443615256
斯特灵近似值: 359536.87284194835
真实值: 362880
比值: 0.9907872377699194
斯特灵近似值: 3598695.6187410373
真实值: 3628800
比值: 0.9917040395560619
斯特灵近似值: 39615625.05057755
真实值: 39916800
比值: 0.9924549325240889
斯特灵近似值: 475687486.47277606
真实值: 479001600
比值: 0.993081205726194
斯特灵近似值: 6187239475.19272
真实值: 6227020800
比值: 0.9936114996103306
斯特灵近似值: 86661001740.59883
真实值: 87178291200
比值: 0.9940663042108221
斯特灵近似值: 1300430722199.468
真实值: 1307674368000
比值: 0.9944606654548023
斯特灵近似值: 20814114415223.137
真实值: