草庐IT

RECURSION

全部标签

python - 基于递归的合并排序逻辑的替代方案

这里是python中的归并排序逻辑:(这是第一部分,忽略函数merge())问题的重点是将递归逻辑转换为while循环。代码礼貌:RosettacodeMergeSortdefmerge_sort(m):iflen(m)是否有可能在while循环中使其成为一种动态的,当每个左右数组分成两部分时,一种指针根据左右数组的数量不断增加并打破它们直到只有单一长度大小名单还剩下?因为每次在左侧和右侧进行下一次拆分时,数组都会不断分解,直到只剩下单个长度列表,所以左侧(left-left,left-right)和右侧(right-)的数量left,right-right)breaks将增加,直到它

python - 使用 lambda 的递归函数,为什么这不起作用?

我有一个函数可以做一些计算,g(x)。我现在想编写一个函数来计算g(g(g(...g(x)))),其中g被应用了n次。我尝试使用repeat_fn(见下文)来执行此操作,但这不起作用。根据Recursivefunctionusinglambdaexpression解决方案是使用functools.partial。这确实有效,但我不明白如何。另外,我不明白为什么我的方法不起作用。g=lambdax:2*x#Functionthatreturnsthefˆnmapdefrepeat_fn(f,n):ifn==1:returnfelse:returnlambday:f(repeat_fn(f

python - 如何摆脱最大递归深度错误或更好地解决这个问题?

问题:我们有一个5行4列的正方形网格。我们需要使用这些数字来填充网格;1,2,3,4,5,6,7,8,9,10,12,18,20,21,24,27,30,35,36,40。我们需要以这样一种方式填充网格,即每个水平和垂直的邻居都应该毫无余地地分割其他人。例如,12和3可以是邻居,因为12%3==0,但是5和12可以't。网格2x2被指定为10。我尝试使用集合列表来解决问题。每组代表每个网格的可能值。当每个集合只有一个元素时,问题就解决了。以下是我用来尝试解决此问题的函数(我添加了整个内容以防万一,但我认为我的问题出在solve函数中。);classCannotSolveError(Ex

python - 覆盖 odoo 8 中的 write() 方法导致 RuntimeError : maximum recursion depth exceeded

这似乎是一个重要的简单问题,但不知何故我找不到解决方案。当我按下保存按钮时,写入方法将被执行。每次调用write方法时,我都想更改当前模型的一个值(或调用一个函数),所以我将模型的write()方法重写为@api.multidefwrite(self,vals):self.flaeche=37returnsuper(lager,self).write(vals)(模型是lager.py,字段是flaeche=fields.Float(string=u"Fläche(m²)"))错误:运行时错误:超出最大递归深度Traceback(mostrecentcalllast):File"/ho

python - 递归拆分包含一组已定义前缀的字符串 - Python

如果我有一个可以附加到字符串的前缀列表,我如何将一个字符串拆分为它的前缀和下一个子字符串中的其他字符。例如:prefixes=['over','under','re','un','co']str1="overachieve"output:["over","achieve"]str2="reundo"output=["re","un","do"]是否有更好的方法来完成上述任务,可能使用正则表达式或一些字符串函数,而不是:str1="reundo"output=[]forxin[pforpinprefixesifpinstr1]:output.append(x)str1=str1.repl

python - 使用递归对集合进行叉积

我编写了以下递归例程来计算两个集合的叉积。defcombine(input1,input2,output):iflen(input2)==0:returnoutputelse:fornumininput1:output.append((num,input2[0]))combine(input1,input2[1:],output)input1=[125]input2=[23]output=[(1,2),(1,3),(2,2),(2,3),(5,2),(5,3)]是否有可能使递归更好,例如删除else中的循环并尝试在相同的函数中执行。我正在寻找解决问题的不同方法。编辑:不寻找具有内置功能

python - 为什么这个 Python 脚本会创建一个无限循环? (递归)

为什么/如何创建一个看似无限的循环?我错误地认为这会导致某种形式的堆栈溢出类型错误。i=0deffoo():globalii+=1try:foo()exceptRuntimeError:#Thiscallrecursivelygoesofftowardinfinity,apparently.foo()foo()printi 最佳答案 如果超过递归限制,将引发RuntimeError异常。由于您正在捕获此异常,您的机器将继续运行,但您只是添加到一个全局int值,它不会使用太多内存。您可以使用sys.setrecursionlimit(

python - 在 Python(噩梦般的 JSON 结构)中展平未知深度的字典列表(等)

我正在处理以如下结构输出给我的JSON结构:[{u'item':u'something',u'data':{u'other':u'',u'else':[{u'more':u'evenmore',u'argh':{...etc..etc如您所见,这些是嵌套的字典和列表。关于递归地展平这些有很多讨论,但我还没有找到可以处理字典列表的讨论,而字典列表又可能包含列表的字典、列表的列表、字典的字典等;这是未知的深度!在某些情况下,深度可能高达100左右。到目前为止,我一直在尝试这个,但运气不佳(python2.7.2):defflatten(structure):out=[]foritemins

python - 多边形的面积(递归使用 Python)

我正在尝试解决ExploringPython一书中的练习。但是,我想我不明白递归的概念。我写了一些递归函数。因此我知道一些方面。但是,我没有足够的经验。我已经停止学习编程大约一年了。无论如何,让我给你完整的问题:Apolygoncanberepresentedbyalistof(x,y)pairswhereeachpairisatuple:[(x1,y1),(x2,y2),(x3,y3),...(xn,yn)].Writearecursivefunctiontocomputetheareaofapolygon.Thiscanbeaccomplishedby“cuttingoff”atr

python - 如何有效地在django中递归查询?

我有一个模型,它看起来像:classStaffMember(models.Model):id=models.OneToOneField(to=User,unique=True,primary_key=True,related_name='staff_member')supervisor=models.ForeignKey(to='self',null=True,blank=True,related_name='team_members')我当前的团队层次结构设计为假设有一个管理员(位于层次结构的最高点)。现在,假设有3个人(A、B、C)向管理员报告,A、B和C中的每一个人都有自己的团队