python画递推函数 python递推数列

python设计递归函数,求两个数的最大公约数

def common_data(a, b, sub_common):

专注于为中小企业提供网站制作、网站建设服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业仙游免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了上千余家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。

if sub_common == 1:

return sub_common

else:

k1 = a % sub_common

k2 = b % sub_common

if k1 == k2 == 0:

return sub_common

else:

sub_common = sub_common - 1

return common_data(a, b, sub_common)

上面就是定义了一个递归函数求最大公约数

a = 16

b = 12

c = common_data(16,12,12) # 前两个参数就是需要求最大公约数的两个数,第三个参数就是那两个数中较小的那个数, 返回值就是最大公约数

python中解 斐波那契数递推公式不能理解?

第一张图

def f(n):

if n==1 or n==2:

return 1

else:

return f(n-1)+f(n-2)

b=f(6)

print(b)

源代码(注意源代码的缩进)

第一张图是斐波那契数列的递归程序,其过程是

f(6)=f(5)+f(4)=f(4)+f(3)+f(3)+f(2)=f(3)+f(2)+f(2)+f(1)+f(2)+f(1)+f(2)

=f(2)+f(1)+f(2)+f(2)+f(1)+f(2)+f(1)+f(2)

因为f(2)=f(1)=1所以上式=1+1+1+1+1+1+1+1=8

第二张图

def fact(n):

if n==0:

return 1

else:

return n*fact(n-1)

b=fact(5)

print(b)

源代码(注意源代码的缩进)

第二张图是阶乘的递归程序,其过程是

fact(5)=5*fact(4)=5*4*fact(3)=5*4*3*fact(2)=5*4*3*2*fact(1)=5*4*3*2*1*fact(0)

因为fact(0)=1,所以上式=5*4*3*2*1*1=120

详细解释,

因为n等于5所以执行else语句返回5*fact(4)

n等于4所以执行else语句返回4*fact(3)

n等于3所以执行else语句返回3*fact(2)

n等于2所以执行else语句返回2*fact(1)

n等于1所以执行else语句返回1*fact(0)

n等于0所以执行if语句返回1

然后反向回归

fact(1)=1*1

fact(2)=2*1*1

fact(3)=3*2*1*1

fact(4)=4*3*2*1*1

fact(5)=5*4*3*2*1*1=120

python题目:要求用递归、递推和Lambda三种方式编写power(n,x)函数。

lambda不好写,写了前两个,把-2改为-7,改成-7后,我试过x必须大于4。-2时x可以从1开始

#递归

def power(n, x):

if abs(1/pow(n, x))abs(pow(10, -2)):

return 0#回归条件

else:

m = n + 1#递归因子

if(n%2==1):

return 1/pow(n, x)+power(m, x)#求和奇正

else:

return -1/pow(n, x)+power(m, x)#求和偶负

def power2(n, x):

sum = 0

while(1/pow(n,x)abs(pow(10, -2))):

if (n % 2 == 1):

sum+= 1 / pow(n, x)

else:

sum+=-1 / pow(n, x)

n += 1  # 递增

return sum

if __name__ == "__main__":

x = input("请输入幂数")

x = int(x)

n = 1

sum = power(n, x)

print(sum)

n=1

sum = power2(n, x)

print(sum)


网站栏目:python画递推函数 python递推数列
当前地址:http://azwzsj.com/article/dopoico.html