资源简介 (共23张PPT)Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.少儿编程课牛吃草问题牛吃草3 × 10 ÷ 6 = 5天一堆草,可供10头牛吃3天,那可供6头牛吃几天?牛顿问题英国著名的物理学家牛顿曾把题目变成了这样:牧场上有一片青草,每天都生长得一样快。这片青草供给24头牛吃,可以吃6天,或者供给20头牛吃,可以吃10天,期间一直有草生长。如果供给19头牛吃,可以吃多少天?这道题因牛顿提出而得名“牛顿问题”牛顿问题牛每天吃草,草每天在不断均匀生长解题环节主要有三步:1、求出每天长草量。2、求出牧场原有草量。3、求出牛可吃的天数。牛顿问题设一头牛1天吃的草为一份24头牛6天吃草为1×24×6=144份,20头牛10天吃草1×20×10=200份牛顿问题无论是144还是200都是吃净了草地原有草量和每日的新增草量原有草量 + 每天生长草量*6 = 144份原有草量 + 每天生长草量*10 = 200份所以:(200-144)= 每天生长草量*10 – 每天生长草量*6说明牧场每天生长草量为14份牛顿问题原有草量 + 每天生长草量*6 = 144份又知道每天生长草量为14份所以144-14×6= 原有草量,说明原有草量为60份牛顿问题原有草量为60份,每天生长草量为14份,那么够19头牛吃几天?x=0while True:if 60+14*x==19*x:breakelse:x+=1print(x)抽水问题一个水池有水不断灌入,现在用10台抽水机,20小时抽干;15台抽水机,10小时抽干;如果有25台抽水机用多少小时?抽水问题问题分解1、求出每小时进水量2、求出水池原有水量3、最后求出用多少小时抽水问题无论是200还是150都是水池原有水量和注入的新水量原有水量 + 每小时注入水量*20 = 200原有水量 + 每小时注入水量*10 = 150所以:(200-150)= 每小时注入水量*20 – 每小时注入水量*10说明每小时注入水量为5份1、求出每小时进水量抽水问题原有水量 + 5*20 = 200原有水量=100 份2、水池原有水量抽水问题3、25台抽水机多少小时?x=0while True:if 100+5*x==25*x:breakelse:x+=1print(x)牛顿问题牛顿问题中还有一些变形题目,比如:冬天时牧场的草不是每天增长而是会每天的减少,问这种情况下可以供N头牛吃多少天?牧场的草每天都在增长,可供牛吃N天,问有多少头牛?抽水问题滚梯行走问题售票窗口问题自定义牛顿问题函数牛顿问题的精髓是在变化中找到不变的量不变量包括:原有的数量和单位时间的变化量自定义一个牛顿问题函数,将牛的数量和吃草时间作为函数的输入,根据不同数量的牛和不同的吃草时间计算出草原原有草量和每日变化草量自定义牛顿问题函数-求解改变量和原有量def newton(n1,d1,n2,d2): #n1头牛吃d1天吃完,n2头牛吃d2天吃完m=n1*d1-n2*d2 #吃草量之差n=d1-d2 #天数之差a=m/n #吃草量之差/天数之差=单位时间草量b=n1*d1-a*d1 #计算原有草量return a,b自定义牛顿问题函数-求解天数def get_result(m,a,b): #m为牛的数量,a为单位时间增量,b为原有数量x=0 #天数while True:if b+a*x==m*n:breakelse:x+=1return x自定义函数解决牛顿问题牧场上有一片青草,每天都生长得一样快。这片青草供给24头牛吃,可以吃6天,或者供给20头牛吃,可以吃10天,期间一直有草生长。如果供给19头牛吃,可以吃多少天?a,b=newton(24,6,20,10) #计算每日草增量和原有草量print(get_result(19,a,b)) #计算可以供19头牛吃几天滚梯行走问题地铁自动扶梯由下向上运行,出站时小男孩在电梯上每分钟走20级台阶,5分钟走到楼上;小女孩每分钟走15级台阶,6分钟到达楼上。电梯一共有多少级台阶?解题思路:电梯的台阶数就是牛吃草时原有草量电梯每分钟运行的速度就是牛吃草时草生长的速度现在只需要求出原有数量即可滚梯行走问题 – 数学解法首先计算自动扶梯每分钟运行的阶数:(20 * 5 – 15 * 6 ) / (6 - 5) = 10阶/每分钟然后计算扶梯总阶数:20 * 5 – 10 * 5 = 50阶滚梯行走问题 – 代码解法调用自定义牛顿函数:print(newton(20,5,15,6))售票窗口问题售票窗口开始售票前已经有人排队,开始售票后也会有人不断过来买票假设每分钟来买票的人是相同的,从开始售票到等候售票的队伍消失,如果开4个售票口需要30分钟,开5个售票口需要20分钟如果开7个售票口需要多长时间?售票窗口问题a,b=newton(4,30,5,20) #计算每分钟来的旅客和原有排队旅客print(get_result(7,a,b)) #计算7个窗口售票多长时间可以不用排队 展开更多...... 收起↑ 资源预览