gpt4 book ai didi

Python写递归函数

转载 作者:太空宇宙 更新时间:2023-11-04 08:04:42 24 4
gpt4 key购买 nike

这个问题与如何编写适合序列的递归函数有关,而不是以三角形形式打印星星。

我正在尝试编写一个 python 函数,该函数使用 Pollard Rho 方法来查找整数的因式分解。在这一点上,我坚持尝试编写一个小函数来找到 f(n) 这样的: enter image description here

情况 0 到 4 的行为如下:

enter image description here

我想我真的很困惑如何设置基本情况并让函数调用自身来计算递归函数的请求迭代。下面是一个甚至对 f(0) 都不起作用的尝试:

def f(xn):
if xn == 0:
answer = 2
return answer
else:
x = xn
f(0) = 2
f(xn) = f(x - 1)^2 + 1
return f(xn)

当我尝试时,这种尝试只会导致错误“SyntaxError: can't assign to function call”:

print f(0)

任何人都可以帮助编写这样一个递归函数来匹配我的代码尝试上图中所描述的情况 0 到 4 的行为吗?

最佳答案

你几乎成功了!请注意,求幂不是python中的运算符^,而是**

def f(xn):
if xn == 0:
answer = 2
return answer
else:
answer = f(xn - 1)**2 + 1
return answer

分配给函数调用是代码中的语法错误。相反,您应该调用该函数并将结果分配给局部变量(在此处称为 answer)。

以更简单的方式编写相同的函数:

def f(xn):
return (1 + f(xn-1)**2) if xn else 2

关于Python写递归函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33455808/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com