Python编程创造营之猴子吃桃任务小结 |
您所在的位置:网站首页 › 猴子吃桃子编程题答案函数递归调用 › Python编程创造营之猴子吃桃任务小结 |
原实验任务来自“如果”和“复读机”实验指导手册(第9页) 问题描述如下: 计算猴子吃桃问题。猴子第 1 天摘了若干个桃子,当即吃了一半零一个;第 2 剩下的吃了一半零一个,一直循环。到第十天时想吃就剩下一个桃子。求第一天摘了几个桃子? 笔者使用华为云ModelArts平台求解猴子吃桃问题,ModelArts平台代码截图如下: 关键代码解释如下: 这道题其实很适合动态规划的倒推思想,已知猴子第10天只剩下第1个桃子,则猴子在第9天应是(1+1)*2=4个桃子;现已知猴子第9天剩下的是4个桃子,则猴子第8天时应是(4+1)*2=10个桃子;现已知猴子第8天是10个桃子,则以此类推。可一直倒推至第1天的桃子数量。 故用python代码求解此题时, 第一段代码采用了倒推方法使用for 循环,从第9天开始计数,设置步长-1,倒推至第1天。循环结束的同时,计算出第1天猴子吃桃数量。 第二段代码则是采用递归函数的方法进行正向求解,欲求第1天猴子吃桃数量,则需要计算出第2天猴子吃桃数量;欲求第2天猴子吃桃数量,则需要计算出第3天猴子吃桃数量。如此一直递归,已知第10天猴子的桃子数量是1,而前一天的猴子吃桃数量与这一天有着数量上的对应关系。则递归可求解。 实验小结: 综上所述,猴子吃桃问题看似是个简单的数学计算问题,但背后的倒推和递归思想还是颇让人回味的。题目虽小,思想很大~ |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |