小球斜上抛代码python,python一球从100米高度自由落下 每次落地返回递归算法
本文主要介绍python球落地问题及其解决方法(递归函数),有很好的参考价值,希望对大家有所帮助。如有错误或不足之处,请不吝赐教。
00-1010问题什么是递归函数例子?python递归函数简介
目录
一个球从100米的高度自由落体,每次落地后跳回原来高度的一半。求第10次弹跳的高度和总距离。
问题
函数的递归调用是函数嵌套调用的一种特殊形式。在调用函数的过程中,函数本身被直接或间接地称为函数的递归调用。
递归循环没有意义。
递归调用必须有两个明确的阶段:
1.回到:反复递归调用。说白了就是一个重复的过程。
但需要注意的是,每次重复问题的规模要缩小,直到逼近一个最终结果,即回溯阶段必须有明确的结束条件。2.递归3360逐层计算结果。
什么是递归函数
假设有五个人,第五个人就是第四个年龄,以此类推。
年龄(5)=年龄(4) 2
年龄(4)=年龄(3) 2
年龄(3)=年龄(2) 2
年龄(2)=年龄(1) 2
年龄(1)=18岁
我们可以把人数定义为N,然后形成一个数学格式:
年龄(n)=年龄(n-1) 2 # n1
年龄(n)=18 # n=1
这时,你只需要创建函数,编写这两个块,就完成了递归函数的创建:
定义年龄(n):
如果n==1:
返回18
如果编号为1:
返回年龄(n-1) 2
印刷品(5岁)
例子
首先我们需要注意三个点
1.球从100米的高度落下,所以球在第一次弹跳的时候已经走了100米。
2.球最后一次弹起来,没有掉下来。
3.每次弹跳的高度需要*2就是这次弹跳的距离。
far=[100]
定义跳转(n):
如果n==1:
far.append(100)
返回50
else:
b=跳转(n-1)/2
far.append(b*2)
返回b
打印(跳转(10))
打印(远)
print(sum(far)-jump(10))
小球落地解题思路
1、代码
定义斐波那契(n):
如果n==0:
返回0
elif n==1:
返回1
else:
返回斐波纳契(n-1)斐波纳契(n-2)
print([Fibonacci(x)for x in range(10)])
2、运行截图
3、补充说明
[1]递归必须有终止条件。
[2]递归的规模比上次小。
[3]递归的效率很低。通过程序调试可以看出,进几层,出几层,使得存储空间更大。
以上个人经验,希望给你一个参考,也希望你能支持盛行的IT软件开发工作室。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。