协助递归

2024-04-26 01:18:40 发布

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

这就是我想弄明白的。我真的很想了解,或者如果有一个好的资源,将有助于这将是伟大的太不只是一个答案。你知道吗

考虑由n≥1的x(1) = 1x(n+1) = 2*x(n) + 1定义的序列{x(n)}。编写一个递归函数recSeq(N),它计算并返回x(N)。使用此函数确定x(100)并打印输出。你知道吗

这是最后的,我已经能够得到一个数字打印,虽然它不是正确的数字。你知道吗

if N ==0:
    return 1
elif N >= 1:
    return 3
else:
    return recSeq((2*N) +1)

如果我做了下面的工作,它只会继续运行所有的错误回复

if N ==0:
    return 1
elif N == 1:
    return 3
else:
    return recSeq((2*N) +1)

Tags: 函数答案returnif定义错误序列数字
2条回答

如果你被问到x(n),你需要做的是计算x(n-1),为了计算2*x(n-1)+1。为了计算x(n-1),你需要计算x(n-2)等等,唯一的例外是x(1)=1。你知道吗

检查n >=0也是一个好主意,以防止程序陷入无限循环。你知道吗

def recSeq(n):
    if n <=0:
        raise ValueError('n must be >= 1')
    elif n == 1:
        return 1
    else:
        return(2*recSeq(n-1)+1)

解决方案:

def recSeq(n): return 1 if  n==1 else 2*recSeq(n-1)+1

递归很简单:基本情况,一般情况。你知道吗

相关问题 更多 >