【组合数学】【Python】【小练习】一、斯特灵近似式求阶乘

一、问题介绍

斯特灵(Stirling)近似式,是数学分析中,用于求阶乘近似值的一个常用公式,其简单的表述形式为:

二、Python实现

使用Python,循环从n=1至n=98,分别输出n的阶乘值、斯特灵公式近似值,以及二者的比值。程序如下:

python 复制代码
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)

程序输出:

python 复制代码
"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
真实值: 20922789888000
比值: 0.994805880412765
斯特灵近似值: 353948328666101.1
真实值: 355687428096000
比值: 0.9951105962917827
斯特灵近似值: 6372804626194313.0
真实值: 6402373705728000
比值: 0.9953815442689276
斯特灵近似值: 1.2111278659229419e+17
真实值: 121645100408832000
比值: 0.9956240422775042
斯特灵近似值: 2.422786846761135e+18
真实值: 2432902008176640000
比值: 0.9958423473771203
斯特灵近似值: 5.088861732550975e+19
真实值: 51090942171709440000
比值: 0.9960399077096737
斯特灵近似值: 1.1197514946282378e+21
真实值: 1124000727777607680000
比值: 0.996219545909217
斯特灵近似值: 2.575852537052931e+22
真实值: 25852016738884976640000
比值: 0.9963835947771517
斯特灵近似值: 6.182979270227948e+23
真实值: 620448401733239439360000
比值: 0.9965339991134844
斯特灵近似值: 1.5459594834691181e+25
真实值: 15511210043330985984000000
比值: 0.9966723931598105
斯特灵近似值: 4.020009930609553e+26
真实值: 403291461126605635584000000
比值: 0.9968001602066026
斯特灵近似值: 1.0855315170319531e+28
真实值: 10888869450418352160768000000
比值: 0.9969184789796951
斯特灵近似值: 3.0398232624334186e+29
真实值: 304888344611713860501504000000
比值: 0.9970283601049891
斯特灵近似值: 8.81639210537749e+30
真实值: 8841761993739701954543616000000
比值: 0.9971306750419006
斯特灵近似值: 2.6451709592296516e+32
真实值: 265252859812191058636308480000000
比值: 0.9972261792398889
斯特灵近似值: 8.200764697241122e+33
真实值: 8222838654177922817725562880000000
比值: 0.9973155308202983
斯特灵近似值: 2.6244651408193303e+35
真实值: 263130836933693530167218012160000000
比值: 0.9973993057608336
斯特灵近似值: 8.661418381417958e+36
真实值: 8683317618811886495518194401280000000
比值: 0.9974780103233257
斯特灵近似值: 2.9451009609982435e+38
真实值: 295232799039604140847618609643520000000
比值: 0.9975520912915815
斯特灵近似值: 1.0308575166584033e+40
真实值: 10333147966386144929666651337523200000000
比值: 0.9976219444566121
斯特灵近似值: 3.711332490874158e+41
真实值: 371993326789901217467999448150835200000000
比值: 0.9976879216895974
斯特灵近似值: 1.3732789283357648e+43
真实值: 13763753091226345046315979581580902400000000
比值: 0.9977503368693503
斯特灵近似值: 5.218769211900575e+44
真实值: 523022617466601111760007224100074291200000000
比值: 0.9978094708750969
斯特灵近似值: 2.0354344348300693e+46
真实值: 20397882081197443358640281739902897356800000000
比值: 0.9978655758120651
斯特灵近似值: 8.142172644946236e+47
真实值: 815915283247897734345611269596115894272000000000
比值: 0.9979188786040203
斯特灵近似值: 3.3384604069916416e+49
真实值: 33452526613163807108170062053440751665152000000000
比值: 0.9979695840606352
斯特灵近似值: 1.4022212235243676e+51
真实值: 1405006117752879898543142606244511569936384000000000
比值: 0.9980178775072052
斯特灵近似值: 6.029829470665712e+52
真实值: 60415263063373835637355132068513997507264512000000000
比值: 0.9980639270478056
斯特灵近似值: 2.6532418206505554e+54
真实值: 2658271574788448768043625811014615890319638528000000000
比值: 0.9981078855202017
斯特灵近似值: 1.1940090686044361e+56
真实值: 119622220865480194561963161495657715064383733760000000000
比值: 0.9981498921903026
斯特灵近似值: 5.492662822140226e+57
真实值: 5502622159812088949850305428800254892961651752960000000000
比值: 0.9981900742259572
斯特灵近似值: 2.5816510284825745e+59
真实值: 258623241511168180642964355153611979969197632389120000000000
比值: 0.9982285479826416
斯特灵近似值: 1.2392382664425307e+61
真实值: 12413915592536072670862289047373375038521486354677760000000000
比值: 0.9982654201287052
斯特灵近似值: 6.072482645765103e+62
真实值: 608281864034267560872252163321295376887552831379210240000000000
比值: 0.9983007886329174
斯特灵近似值: 3.036344593938168e+64
真实值: 30414093201713378043612608166064768844377641568960512000000000000
比值: 0.9983347436336244
斯特灵近似值: 1.5485863474941077e+66
真实值: 1551118753287382280224243016469303211063259720016986112000000000000
比值: 0.99836736820575
斯特灵近似值: 8.052902038388715e+67
真实值: 80658175170943878571660636856403766975289505440883277824000000000000
比值: 0.9983987390393719
斯特灵近似值: 4.268167130531859e+69
真实值: 4274883284060025564298013753389399649690343788366813724672000000000000
比值: 0.9984289270415383
斯特灵近似值: 2.3048773586655146e+71
真实值: 230843697339241380472092742683027581083278564571807941132288000000000000
比值: 0.9984579978713181
斯特灵近似值: 1.267718115662497e+73
真实值: 12696403353658275925965100847566516959580321051449436762275840000000000000
比值: 0.9984860124164401
斯特灵近似值: 7.099413522574659e+74
真实值: 710998587804863451854045647463724949736497978881168458687447040000000000000
比值: 0.9985130272189967
斯特灵近似值: 4.04677135197153e+76
真实值: 40526919504877216755680601905432322134980384796226602145184481280000000000000
比值: 0.9985390948563266
斯特灵近似值: 2.3471865464234703e+78
真实值: 2350561331282878571829474910515074683828862318181142924420699914240000000000000
比值: 0.9985642642825379
斯特灵近似值: 1.3848737857596246e+80
真实值: 138683118545689835737939019720389406345902876772687432540821294940160000000000000
比值: 0.9985885811353248
斯特灵近似值: 8.3094383149767e+81
真实值: 8320987112741390144276341183223364380754172606361245952449277696409600000000000000
比值: 0.9986120880121295
斯特灵近似值: 5.068872779161898e+83
真实值: 507580213877224798800856812176625227226004528988036003099405939480985600000000000000
比值: 0.9986348247191474
斯特灵近似值: 3.1427703689082454e+85
真实值: 31469973260387937525653122354950764088012280797258232192163168247821107200000000000000
比值: 0.9986568284963022
斯特灵近似值: 1.9799875733185862e+87
真实值: 1982608315404440064116146708361898137544773690227268628106279599612729753600000000000000
比值: 0.9986781342207176
斯特灵近似值: 1.2672182368568135e+89
真实值: 126886932185884164103433389335161480802865516174545192198801894375214704230400000000000000
比值: 0.9986987745912168
斯特灵近似值: 8.237083539630221e+90
真实值: 8247650592082470666723170306785496252186258551345437492922123134388955774976000000000000000
比值: 0.9987187802957616
斯特灵近似值: 5.436580738355171e+92
真实值: 544344939077443064003729240247842752644293064388798874532860126869671081148416000000000000000
比值: 0.9987381801636844
斯特灵近似值: 3.6425777374886635e+94
真实值: 36471110918188685288249859096605464427167635314049524593701628500267962436943872000000000000000
比值: 0.9987570013042998
斯特灵近似值: 2.476998166605485e+96
真实值: 2480035542436830599600990418569171581047399201355367672371710738018221445712183296000000000000000
比值: 0.9987752692332945
斯特灵近似值: 1.709159089950092e+98
真实值: 171122452428141311372468338881272839092270544893520369393648040923257279754140647424000000000000000
比值: 0.9987930079881316
斯特灵近似值: 1.1964320047337557e+100
真实值: 11978571669969891796072783721689098736458938142546425857555362864628009582789845319680000000000000000
比值: 0.9988102402335611
斯特灵近似值: 8.494809664319491e+101
真实值: 850478588567862317521167644239926010288584608120796235886430763388588680378079017697280000000000000000
比值: 0.9988269873582672
斯特灵近似值: 6.1163626615111185e+103
真实值: 61234458376886086861524070385274672740778091784697328983823014963978384987221689274204160000000000000000
比值: 0.9988432695633732
斯特灵近似值: 4.465015533351977e+105
真实值: 4470115461512684340891257138125051110076800700282905015819080092370422104067183317016903680000000000000000
比值: 0.9988591059437687
斯特灵近似值: 3.3041624646270324e+107
真实值: 330788544151938641225953028221253782145683251820934971170611926835411235700971565459250872320000000000000000
比值: 0.9988745145628006
斯特灵近似值: 2.4781590571159635e+109
真实值: 24809140811395398091946477116594033660926243886570122837795894512655842677572867409443815424000000000000000000
比值: 0.9988895125210016
斯特灵近似值: 1.8834284182269836e+111
真实值: 1885494701666050254987932260861146558230394535379329335672487982961844043495537923117729972224000000000000000000
比值: 0.9989041160193974
斯特灵近似值: 1.4502605334563188e+113
真实值: 145183092028285869634070784086308284983740379224208358846781574688061991349156420080065207861248000000000000000000
比值: 0.9989183404178815
斯特灵近似值: 1.1312189114037986e+115
真实值: 11324281178206297831457521158732046228731749579488251990048962825668835325234200766245086213177344000000000000000000
比值: 0.9989322002890937
斯特灵近似值: 8.936750255667243e+116
真实值: 894618213078297528685144171539831652069808216779571907213868063227837990693501860533361810841010176000000000000000000
比值: 0.998945709468257
斯特灵近似值: 7.14949447318118e+118
真实值: 71569457046263802294811533723186532165584657342365752577109445058227039255480148842668944867280814080000000000000000000
比值: 0.998958881099184
斯特灵近似值: 5.791164996507119e+120
真实值: 5797126020747367985879734231578109105412357244731625958745865049716390179693892056256184534249745940480000000000000000000
比值: 0.9989717276769705
斯特灵近似值: 4.748814876499388e+122
真实值: 475364333701284174842138206989404946643813294067993328617160934076743994734899148613007131808479167119360000000000000000000
比值: 0.9989842610875203
斯特灵近似值: 3.941564607394658e+124
真实值: 39455239697206586511897471180120610571436503407643446275224357528369751562996629334879591940103770870906880000000000000000000
比值: 0.9989964926442252
斯特灵近似值: 3.310953843822257e+126
真实值: 3314240134565353266999387579130131288000666286242049487118846032383059131291716864129885722968716753156177920000000000000000000
比值: 0.9990084331220233
斯特灵近似值: 2.8143436137448937e+128
真实值: 281710411438055027694947944226061159480056634330574206405101912752560026159795933451040286452340924018275123200000000000000000000
比值: 0.9990200927890578
斯特灵近似值: 2.4203630992044694e+130
真实值: 24227095383672732381765523203441259715284870552429381750838764496720162249742450276789464634901319465571660595200000000000000000000
比值: 0.9990314814361174
斯特灵近似值: 2.1057393492558477e+132
真实值: 2107757298379527717213600518699389595229783738061356212322972511214654115727593174080683423236414793504734471782400000000000000000000
比值: 0.999042608404093
斯特灵近似值: 1.8530707971086265e+134
真实值: 185482642257398439114796845645546284380220968949399346684421580986889562184028199319100141244804501828416633516851200000000000000000000
比值: 0.9990534826094823
斯特灵近似值: 1.6492505573148788e+136
真实值: 16507955160908461081216919262453619309839666236496541854913520707833171034378509739399912570787600662729080382999756800000000000000000000
比值: 0.9990641125682085
斯特灵近似值: 1.4843409438918685e+138
真实值: 1485715964481761497309522733620825737885569961284688766942216863704985393094065876545992131370884059645617234469978112000000000000000000000
比值: 0.9990745064179393
斯特灵近似值: 1.3507640027413541e+140
真实值: 135200152767840296255166568759495142147586866476906677791741734597153670771559994765685283954750449427751168336768008192000000000000000000000
比值: 0.9990846719388152
斯特灵近似值: 1.2427152520695737e+142
真实值: 12438414054641307255475324325873553077577991715875414356840239582938137710983519518443046123837041347353107486982656753664000000000000000000000
比值: 0.9990946165728123
斯特灵近似值: 1.155736440826705e+144
真实值: 1156772507081641574759205162306240436214753229576413535186142281213246807121467315215203289516844845303838996289387078090752000000000000000000000
比值: 0.9991043474420477
斯特灵近似值: 1.086402610369289e+146
真实值: 108736615665674308027365285256786601004186803580182872307497374434045199869417927630229109214583415458560865651202385340530688000000000000000000000
比值: 0.9991138713656339
斯特灵近似值: 1.0320921110167377e+148
真实值: 10329978488239059262599702099394727095397746340117372869212250571234293987594703124871765375385424468563282236864226607350415360000000000000000000000
比值: 0.9991231948757692
斯特灵近似值: 9.908174799577235e+149
真实值: 991677934870949689209571401541893801158183648651267795444376054838492222809091499987689476037000748982075094738965754305639874560000000000000000000000
比值: 0.9991323242325261
斯特灵近似值: 9.611015563513046e+151
真实值: 96192759682482119853328425949563698712343813919172976158104477319333745612481875498805879175589072651261284189679678167647067832320000000000000000000000
比值: 0.9991412654380193
斯特灵近似值: 9.41887782059826e+153
真实值: 9426890448883247745626185743057242473809693764078951663494238777294707070023223798882976159207729119823605850588608460429412647567360000000000000000000000
比值: 0.9991500242494132

Process finished with exit code 0

可以看出,随着n值的增长,斯特灵近似值和真实的阶乘值之间的比值越来越接近1.我们也有如下推论:

相关推荐
yava_free几秒前
JVM这个工具的使用方法
java·jvm
shinelord明4 分钟前
【再谈设计模式】建造者模式~对象构建的指挥家
开发语言·数据结构·设计模式
平头哥在等你14 分钟前
Python中的正则表达式教程
python·正则表达式
黑不拉几的小白兔20 分钟前
PTA部分题目C++重练
开发语言·c++·算法
Best_Me0721 分钟前
如何在Pycharm的终端里进入自己的环境
ide·python·pycharm
写bug的小屁孩22 分钟前
websocket身份验证
开发语言·网络·c++·qt·websocket·网络协议·qt6.3
不会编程的懒洋洋28 分钟前
Spring Cloud Eureka 服务注册与发现
java·笔记·后端·学习·spring·spring cloud·eureka
赖龙33 分钟前
java程序打包及执行 jar命令及运行jar文件
java·pycharm·jar
U12Euphoria35 分钟前
java的runnable jar采用exe和.bat两种方式解决jre环境的问题
java·pycharm·jar
材料苦逼不会梦到计算机白富美1 小时前
线性DP 区间DP C++
开发语言·c++·动态规划