您的位置是:网站首页>Python编程Python编程

用Python解决猴子吃桃问题

少儿编程网2019-03-26 16:56:00Python编程 人已围观 来源: -用户投稿

简介猴子吃桃问题是数学中的一道经典问题,学习过相关数学知识的人固然已经知道该如何解答了,但还没有学到这部分知识的孩子该怎么办呢?其实接触了编程的孩子就可以用编程知识来解决这个问题了,比如Python,

欢迎访问少儿编程网(http://www.pxcodes.com)

猴子吃桃问题是数学中的一道经典问题,学习过相关数学知识的人固然已经知道该如何解答了,但还没有学到这部分知识的孩子该怎么办呢?其实接触了编程的孩子就可以用编程知识来解决这个问题了,比如Python,下面跟随少儿编程网来动手试试看,用Python解决猴子吃桃问题。rUt少儿编程网-https://www.pxcodes.com

用Python解决猴子吃桃问题rUt少儿编程网-https://www.pxcodes.com

猴子第1天摘下了若干个桃子,当即吃了一半,还不过瘾,又多吃了一个,第2天早上又把剩下的桃子吃掉了一半,又多吃了一个,然后每天早上都吃了前一天剩下的一半零一个,到第10天早上想吃时,发现只剩下一个桃子了,求第一天共摘了多少个桃子?rUt少儿编程网-https://www.pxcodes.com

假设第一天桃子的数量为x,那么当天吃掉的桃子为 x/2+1;rUt少儿编程网-https://www.pxcodes.com

可以得出第二天的桃子的初始数量为 x-(x/2+1) = x/2-1.rUt少儿编程网-https://www.pxcodes.com

按这个规律排列下去,根据题目可知,第十天的桃子数量为1.rUt少儿编程网-https://www.pxcodes.com

同时,我们可以知道第一天的桃子的数量,和第二天的桃子数量之间的关系为:(第二天桃子的数量+1)*2rUt少儿编程网-https://www.pxcodes.com

如果我们把每天的初始桃子数量看作一个数列,并从**后一天倒序排列的话,由于我们知道这个数列的第一个数字,那这个问题就可以用递归函数来解决了。rUt少儿编程网-https://www.pxcodes.com

我们把这个函数命名为f(n),n取值从1到10,代表倒数第一天到倒数第十天.rUt少儿编程网-https://www.pxcodes.com

首先,倒序的第1天是一个桃子,也即f(1)=1。rUt少儿编程网-https://www.pxcodes.com

从前面分析我们已经知道,连续两天之间的桃子的数量之间的关系,用等价的表达式可以表示为:也即f(n)=(f(n-1)+1)*2,有了这个规律,我们就可以写出下面的程序代码:rUt少儿编程网-https://www.pxcodes.com

def f(n):rUt少儿编程网-https://www.pxcodes.com

if n == 1:rUt少儿编程网-https://www.pxcodes.com

return 1rUt少儿编程网-https://www.pxcodes.com

else:rUt少儿编程网-https://www.pxcodes.com

return (f(n-1)+1)*2rUt少儿编程网-https://www.pxcodes.com

print(f(10))rUt少儿编程网-https://www.pxcodes.com

用python执行,打印的结果是1534。rUt少儿编程网-https://www.pxcodes.com

然后把每天的初始的打印桃子数量打印出来:rUt少儿编程网-https://www.pxcodes.com

for _ in range(10,0,-1):rUt少儿编程网-https://www.pxcodes.com

print(_,”—>”,f(_))rUt少儿编程网-https://www.pxcodes.com

10 —> 1534rUt少儿编程网-https://www.pxcodes.com

9 —> 766rUt少儿编程网-https://www.pxcodes.com

8 —> 382rUt少儿编程网-https://www.pxcodes.com

7 —> 190rUt少儿编程网-https://www.pxcodes.com

6 —> 94rUt少儿编程网-https://www.pxcodes.com

5 —> 46rUt少儿编程网-https://www.pxcodes.com

4 —> 22rUt少儿编程网-https://www.pxcodes.com

3 —> 10rUt少儿编程网-https://www.pxcodes.com

2 —> 4rUt少儿编程网-https://www.pxcodes.com

1 —> 1rUt少儿编程网-https://www.pxcodes.com

按步骤运行,这样结果也就出来啦!rUt少儿编程网-https://www.pxcodes.com

直接用Python编程,短短几行代码,结果就输出来了,复杂的数学问题是不是也简单多了呢?你也不妨自己动手试试看吧。rUt少儿编程网-https://www.pxcodes.com

欢迎访问少儿编程网(http://www.pxcodes.com)

相关文章:

支持一下 ( )

用Python解决猴子吃桃问题

      匿名评论
    • 评论
    人参与,条评论
    用Python解决猴子吃桃问题

微信公众号

免费视频教程

先知道