手抄报 安全手抄报 手抄报内容 手抄报图片 英语手抄报 清明节手抄报 节约用水手抄报

用猴子吃桃问题讲讲递归和递推区别

时间:2024-10-13 13:20:08

1、最开始拿到这题是想顺着推出找规律:疏为尺储桃子总数为N,找出每天吃了几个加起来就得到总数。第一天吃了N/2+1个,第二天吃了(N/2-1)/2+1个,第三天吃了(N-(N+2)/4-(N+2)/2)/2+1,然后推导到这一步我就不推了(这是套娃,而且还没思路)显然看一眼题目,第十天剩1个桃子,可以采用逆推,这时就设第九天有x个桃子,x-(x/2+1)=1,得出x=4,然后再用第九天推第八天......最后推第一天桃子总数。(我一想,这法子可行,虽然套娃但有规律)。上述的方法就是递推中的顺推和逆推,正好符合定义:从已知出发,推出未知。然后我在想,逆推时候这个1个桃子是第十天剩余的桃子数,逆推结果是每天剩余桃子数,我就想正推思路是不是就有问题,着重点应该在每天剩余桃子数上。如果n代表天数,N代表第一天桃子数推导出来:f(1)=(f(2)+1)*2 f(2)=(f(3)+1)*2 ....... f(10)=1我一看,这是从未知出发,利用条件继续套娃,那么何时递归完毕(套娃结束)呢?第十天。也就是说n==10是递归出口。就这个题目而言,递归和递推刚好相反。在递推中,每一个f(n)都能得到一个精确的结果;递归中,除了出口f(10)=1能立刻得出结果,每个f(i)都不能立刻返回结果,而是把问题转换成规模较小一点的模式相似的等式,直到找到递归出口f(10)=1,再反过来依次求出f(9),f(8),f(7),f(6)......f(1),这样得出问题答案。

© 手抄报圈