Python编程创造营之猴子吃桃任务小结

您所在的位置:网站首页 猴子吃桃子编程题答案函数递归调用 Python编程创造营之猴子吃桃任务小结

Python编程创造营之猴子吃桃任务小结

#Python编程创造营之猴子吃桃任务小结| 来源: 网络整理| 查看: 265

原实验任务来自“如果”和“复读机”实验指导手册(第9页)

 问题描述如下:

计算猴子吃桃问题。猴子第 1 天摘了若干个桃子,当即吃了一半零一个;第 2 剩下的吃了一半零一个,一直循环。到第十天时想吃就剩下一个桃子。求第一天摘了几个桃子?

笔者使用华为云ModelArts平台求解猴子吃桃问题,ModelArts平台代码截图如下:

猴子吃桃.JPG

关键代码解释如下:

    这道题其实很适合动态规划的倒推思想,已知猴子第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