Python程序设计实践 教案 实验20 趣味逻辑推理.docx

Python程序设计实践 教案 实验20 趣味逻辑推理.docx

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

《Python程序设计实践教程》课程教案

课题:趣味逻辑推理

教学目的:

逻辑思维题是一种很好的训练逻辑思维的方式,会用到一些典型的算法。

本实验选取了几个趣味逻辑推理、统计的编程实例。

课型:新授课

课时:

本章安排2个课时。

教学重点:

重点:通过趣味逻辑推理、统计的编程实例训练逻辑思维的方式。

教学难点:

难点:教学难点在于引导学生准确梳理猴子吃桃、鸡兔同笼、幼儿园分糖果问题中的复杂逻辑关系,通过合理假设与严谨推理,构建数学模型并运用恰当算法求解,克服思维定式与逻辑陷阱。

教学过程:

教学形式:讲授课,教学组织采用课堂整体讲授和分组演示。

教学媒体:采用启发式教学、案例教学等教学方法。教学手段采用多媒体课件、视频等媒体技术。

板书设计:

本课标题

趣味逻辑推理

课次

0.5

授课方式

理论课□讨论课□习题课□其他□

课时安排

2

学分

共2分

授课对象

普通高等院校学生

任课教师

教材及参考资料

1.《Python程序设计实践教程》。

2.本教材配套视频教程及学习检查等资源。

3.与本课程相关的其他资源。

教学基本内容

教学方法及教学手段

课程引入

生活里不少看似平常的场景,实则蕴含着精妙的逻辑推理。就说周末去逛动物园,看到鸡和兔子同处一笼,只数得脑袋与脚的数量,如何算出鸡兔各几何?这便是经典的“鸡兔同笼”问题。再想象一个画面,幼儿园老师给小朋友分糖果,每个小朋友分的数量不同,要保证公平又刚好分完,老师得经过怎样的思考与计算?这背后也藏着逻辑推理的智慧。还有个有趣的事儿,一只猴子每天吃桃子,吃法有独特规律,我们怎样通过它最后的桃子剩余数量,反推出最初有多少桃子呢?这就是“猴子吃桃问题”。接下来,就让我们走进这些趣味逻辑推理问题,锻炼思维,探寻其中的奥秘。

参考以下形式:

1.衔接导入

2.悬念导入

3.情景导入

4.激疑导入

5.演示导入

6.实例导入

7.其他形式

实验20趣味逻辑推理

实例20-1猴子吃桃问题

1.题目描述

有一只猴子第一天摘下若干个桃子,当即吃掉了一半,又多吃了一个;第二天将剩下的桃子吃掉一半,又多吃一个。按照这样的吃法,每天都吃前一天剩下的桃子的一半又一个。到了第十天,只剩下一个桃子。请问这只猴子第一天摘了多少个桃子?

2.题目分析

本题是一个递推问题,计算时可以从最后一天回推到第一天。前一天的桃子是后一天的桃子的数量加?1?的?2?倍。

3.程序代码

(1)用?while?语句

x0=1

day=10

whileday1:

day-=1

x1=2*(x0+1)

x0=x1

print(x0)

(2)用?for?循环

x2=1

fordayinrange(9,0,-1):

x1=(x2+1)*2

x2=x1

print(x1)

4.运行结果

1534

5.思考与讨论

(1)天数未知的情况

猴子第一天摘下若干个桃子,当即吃掉一半,又多吃一个。第二天早上又将剩下的桃子吃了一半,又多吃一个。每天都吃前一天剩下的桃子的一半又一个。到了第?n?天早上,猴子发现只剩下一个桃子了。问第一天猴子共摘了多少个桃子?

要求在第一行中输入天数(整数),在下一行中输出总共的桃子数。

用递归算法编写的程序如下。

defpeach(day):

ifday==1:

return1

return(peach(day-1)+1)*2

n=int(input(请输入天数:))

print(总共有%d?只桃子%peach(n))

输入样例如下。

请输入天数:3

输出样例如下。

总共有10只桃子

(2)剩余桃子数未知的情况

猴子第一天摘下若干个桃子,当即吃了?2/3,还不过瘾,又多吃了一个;第二天早上将剩下的桃子吃掉?2/3,又多吃了一个。以后每天早上都吃前一天剩下的?2/3?再多一个。到了第?n?天早上,发现只剩下?k?个桃子。问第一天共摘了多少个桃子?

首先输入一个正整数?t?表示测试数据的组数,然后输入?t?组测试数据。每组数据输入?2?个正整数?n、k(k≤15)。

输入样例如下。

2

21

42

输出样例如下。

6

93

6.问题拓展

五人分鱼问题

某天夜里,A、B、C、D、E?五个人一起去捕鱼,到了第二天凌晨都疲惫不堪,于是各自找地方睡觉。A?第一个醒来,他将鱼分为五份,把多余的一条鱼扔掉,拿走了自己的一份。B?第二个醒来,也将鱼分为五份,把多余的一条鱼扔掉,拿走了自己的一份。C、D、E?依次醒来,也按同样的方法拿鱼。问他们至少捕了多少条鱼?

根据题意可知,总计将所有鱼进行了?5?次平均分配,每次分配的策略是相同的,即扔掉一条鱼

文档评论(0)

lai + 关注
实名认证
内容提供者

精品资料

版权声明书
用户编号:7040145050000060

1亿VIP精品文档

相关文档