python中的Recaman序列

2024-04-18 23:16:08 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我尝试在python中使用递归来创建Recaman的序列,但我很难做到这一点。你知道吗

我知道雷卡曼的序列是怎么运作的。在我的例子中,给定rec(n),如果值以前没有出现在序列中,则每n项等于前一项减去n,否则等于前一项减去n。你知道吗

这个问题的主要问题是如何“保存”每个rec(n)以检查它以前是否出现过,然后将现有的n与该值进行比较。你知道吗

到目前为止,我的代码没有显示太多内容,但我相信我必须添加一个参数,并使用包装函数/累计递归来实现这一点。你知道吗

这是我当前的代码,它肯定不工作,但我试图存储在一个列表中的值。你知道吗

def rec(n):
  list = []
  if n == 0:
    return 0
  elif rec(n-1) - n in list:
    list.append(rec(n-1) - n)
    return rec(n-1) - n
  else:
    list.append(rec(n-1) + n)
    return rec(n-1) + n

感谢您的帮助,谢谢!你知道吗


Tags: 函数代码内容列表参数returnifdef