社区
脚本语言
帖子详情
经实验: Python 2.3 的最大递归深度为 995层。
albertlee
2004-03-19 03:32:46
# fact
# 阶乘 测试, 最大递归深度在995 左右
def fact(n):
if n < 1:
return 1
else:
return n * fact(n - 1)
print fact(5)
print fact(995)
...全文
396
19
打赏
收藏
经实验: Python 2.3 的最大递归深度为 995层。
# fact # 阶乘 测试, 最大递归深度在995 左右 def fact(n): if n < 1: return 1 else: return n * fact(n - 1) print fact(5) print fact(995)
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
19 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
albertlee
2004-09-30
打赏
举报
回复
恩,同意楼上的观点
xyzxyz1111
2004-09-30
打赏
举报
回复
我的理解是:
python语言中设了一个recursionlimit是为了防止c栈的溢出并不是python栈. 如果缺省是1000,
而显示995层实际上是python语言栈, 如果加上python bytecode interpretor的c栈就应该是1000.
而且能达到的最大递归深度应该是recursionlimit和由于资源所限制的递归深度二者的较小值.
super852
2004-09-30
打赏
举报
回复
VC是多少层?vb 是多少层? 其它语言呢?
snaill
2004-08-13
打赏
举报
回复
还是和栈的大小有关吧
xyzxyz1111
2004-08-09
打赏
举报
回复
This limit prevents infinite recursion from causing an overflow of the C stack and crashing Python. It can be set by setrecursionlimit().
xyzxyz1111
2004-08-09
打赏
举报
回复
是的,比如你设为10000,就不一定能达到一万
jaminwm
2004-08-09
打赏
举报
回复
楼上的支持!
据python自带的文档说,理论上是1000层,但是各个系统不一定的
xyzxyz1111
2004-08-04
打赏
举报
回复
import sys
print sys.getrecursionlimit()
sys.setrecursionlimit(limit)
niu_a
2004-08-02
打赏
举报
回复
和调用的什么参数有没有关系?
譬如没有参数、一个参数、两个参数等等。
forever921
2004-07-16
打赏
举报
回复
偶在2.3.4上怎么没有结果出来?
albertlee
2004-03-20
打赏
举报
回复
呵呵,经实验得出的结论,当然是试出来的。
lodestar521
2004-03-20
打赏
举报
回复
楼主历害......试一下996就不行....
mikeshi
2004-03-20
打赏
举报
回复
据python自带的文档说,理论上是1000层,但是各个系统不一定的
albertlee
2004-03-20
打赏
举报
回复
哦? 难道是前面 fact(5)造成?不应该压?
要不就是在 idle 里面本身就消耗了几层?
duracell
2004-03-20
打赏
举报
回复
应该是999
1000时已经出错了
duracell
2004-03-20
打赏
举报
回复
而且俺可以用fact(998)哦:
fact(998)
40279005012722099453824067459760158730668154575647110364744735778772623863726628
68789231316185879927932732618720692653239556224954902988577590829125825271181155
40044131204964883707335062250983503282788739735011132006982444941985587005283378
02452081186826214958747396129841759864447025390175172874121785074057653226770021
33987226811442197771863005629804548041517051337803569686364338304993196108181973
41194914502752560687555393768328059805942027406941465687273867068997087966263572
00339624064392515671532636334014149880301918793554522109244075277825684616693410
32356841103464778903991793873876493324835108526806583631477836518219863513755292
20618900164975188281042287183543472177292257232652561904125692525097177999332518
63544700061645299998403073971531821916970732379964737579768736701325820336412948
28910899913768193072922522055246263497052618640034538535898706207585962115186464
08335184218571196396412300835983314926628732700876798309217005024417595709904449
70693079633779886175394190212596493641250100728414711426093563319610734142386307
12313851660559499144326959396112279901693382480279398435976289035258158038090044
48863145157344706452445088044626373001304259830129153477630812429640105937974761
66778504520398750825977606028582609126174504927541939368061367536626423271530543
08892163846110691356624323910437259988058816630549130919816338420063546995255187
84828195856033032645477338126512662942408363494651203239333321502114252811411713
14884337059480114577757503563031288598977986388832075922488212714154436625150397
49101007216506738103035770746401541128333930472760257998112245715342496725183807
58145683914398263952929391318702517417558325636082722982882372594816582486826728
61463319972621127307277513132522224010014095284257249080182299422406997161353460
34878749968524986235843831060145338306500224110536685081655478389620871112979473
00444414551980512439088964301520461155436870989509667681805149977993044444138428
58206514278735645552868111439268095081541820807239353261612233943443703442428784
21193160588811298874742399923365567643379685380368619499188470097636124758727827
42568849805927378373244946190707168428807837146267156243185213724364546701100557
71452046233508408217643117334692933039407147607181359875958881895431239423433132
77002244550158717754761003716150319409450987888948288126484263657767467745280000
00000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000
00L
duracell
2004-03-20
打赏
举报
回复
不好意思
楼主好像不对耶
俺试下来好像是1000哦:
>>> def test(n):
... try:
... n+=1
... test(n)
... except Exception,e:
... print n, e
...
>>> test(1)
1000 maximum recursion depth exceeded
acuter
2004-03-20
打赏
举报
回复
楼主好强啊。
小弟敬佩。
albertlee
2004-03-19
打赏
举报
回复
>>>
120
406437429372911810071707620504996316369694779581106664803958032466069525746988378515441790618198682607763716046197022512713251519746540788713981108182907123027358512075171846841386259548711348312108005471427734939620777856323299427829814400368977625938900868515149759604704446863530299534501534338407544163682478760476217223515724621349155419414115317250578456790252468979651282555110845368609004248079562865567867376149942000882858856371633620435940486071854353764181341666733034254387940123907667093608415507507846396772134593922310157933491723386316330959727775777403383095470344340789900394429705151192404928812025189188201446650451399692291113230088721994348902095320528891255073653743019450507009238168725861260894573612065054945643507563054750159464205312943078343060301062549558497347968737282514065999998388848782559263133407867106464083241601987625267474077386051804807998630284357522427238993280268955649379092292027748824930111625070479076635125908856026591514689885135706979819835657276960222972144490247887945568953826719737839880178040919433896284365345042406830080242264031169899019507540663914750715882798276061693608630953226485402060110078592188011557381698369137833416493553116272370831423296605404276281109594069904845506339457866434048559868794260780017440663824957484879356114538850786938127642787318486044318471004067649187789503032682147201554135683959756749441779024229070670054257640571915072911774125134346036266912990957357914042989298027875621381280302448791030235543374018625667553896189674558137638211285200766096846123591530191528549072083858083680110857406700829384474323490300115265548730068119528803771293201335907993377241579583799509294423104621662510010949776631056874865631413177146582525675886826424612531114897450008518735209213983810474393037610968265710373289358717746171534809334767716634803876523660782986358888779610519817010791607582313250596034509800931774963933381437853029661800496898837623082762053333858138364486293135804359705642503196136631122817429879415069065644223073313606622117781873901191124731849457606713239649606099469756834916633283458197614580697094087882755099718149308313603400809896330205332291431745816402376698581282542415750355741912532687840222251468970892438276846264724169505538643696939887649942923333570722457929628287208918089728000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
Python
算法:
递归
排序 查找
一、算法概念 算法:就是一个计算过程,解决问题的方法。 二、
递归
2.1、
递归
特点
递归
算法是一种直接或间接调用自身算法的过程,在计算机编程中,它往往使算法的描述简洁而且易于理解。
递归
算法解决问题的特点: (1)
递归
就是在过程或函数里调用自身 (2)在使用
递归
策略时,必须有一个明确的
递归
结束条件,称为
递归
出口。 (3)
递归
算法解题通常显得很简洁,但
递归
算法解题的运行效率较低,所以一般不提倡用
递归
...
Python
递归
竟然如何简单? 看完此文。秒懂
Python
递归
!!!
Python
递归
Python
核心编程
深度
解析:作用域、
递归
与匿名函数的工程实践
Python
核心编程
深度
解析:作用域、
递归
与匿名函数的工程实践
Python
递归
算法详解
本文介绍了
递归
算法的基本原理、应用场景,并通过具体的
Python
代码示例详细讲解了
递归
算法的使用。
递归
是一种强大的算法设计技巧,能够解决许多复杂的问题。在应用
递归
算法时,需要注意
递归
终止条件的正确性,以避免无限
递归
的问题。通过掌握
递归
的原理和应用技巧,我们可以更好地理解和应用
递归
算法,提升问题解决的能力。
脚本语言
37,743
社区成员
34,211
社区内容
发帖
与我相关
我的任务
脚本语言
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
复制链接
扫一扫
分享
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
试试用AI创作助手写篇文章吧
+ 用AI写文章