当前位置:文档之家› B1.3.4 生活中的算法实例 教案

B1.3.4 生活中的算法实例 教案

B1.3.4  生活中的算法实例 教案

1.3.4 生活中的算法实例

教学要求:通过生活实例进一步了解算法思想.

教学重点:生活实例的算法分析.

教学难点:算法思想的理解.

教学过程:

一、复习准备:

1. 前面学习了哪几种算法案例?每种算法的作用及操作方法是怎样的?

2. 算法思想在我们的生活中无处不在,如何利用我们所学习的知识解决生活中的实际问题?

二、讲授新课:

1. 霍奇森算法:

提问:同学们经常会面对一个共同的问题,就是有时有太多的事情要做. 例如,你可能要面临好几门课的作业的最后期限,你如何合理安排以确保每门课的作业都能如期完成?如果根本不可能全部按期完成,你该怎么办?(霍奇森算法可以使得迟交作业的数目减到最小. 这一算法已经广泛应用于工业生产安排的实践中.)

例如:当你拿到下面这组数据后,你会如何安排你的时间,以确保每门课的作业都能如期完

法可用自然语言描述为:①把这些作业按到期日的顺序从左到右排列,从最早到期的到最晚到期的;②假设从左到右一项一项做这些作业的话,计算出从开始到完成某一项作业时所花的时间. 依次做此计算直到完成了所列表中的全部作业而没有一项作业会超期,停止;或你算出某项作业将会超期,继续第三步;③考虑第一项将会超期的作业以及它左边的所有作业,从中取出花费时间最长的那项作业,并把它从表中去掉;④回到第二步,并重复第二到四步,直到做完.

2. 孙子问题:

韩信是秦末汉初的著名军事家. 据说有一次汉高祖刘邦在卫士的簇拥下来到练兵场,刘邦问韩信有什么办法,不要逐个报数,就能知道场上士兵的人数.

韩信先令士兵排成了3列纵队进行操练,结果有2人多余;接着他立刻下令将队形改为5列纵 队,这一改又多出3人;随后他又下令改为7列纵队,这一次又剩下2人无法成整行. 由此得出共有士兵2333人. 如何用现在的算法思想分析这一过程?

《孙子算经》中给出了它的具体解法,其步骤是:选定57?的倍数,被3除余1,即70;选定37?的一个倍数,被5除余1,即21;选定35?的一个倍数,被7除余1,即15. 然后按下式计算702213152105m p =?+?+?-,式中105为3,5,7的最小公倍数,p 为适当的整数,使得0105m <≤,这里取2p =.

求解“孙子问题”的一种普通算法:

第一步:2m =.

第二步:若m 除以3余2,则执行第三步;否则1m m =+,执行第二步. 第三步:若m 除以5余3,则执行第四步;否则1m m =+,执行第二步. 第四步:若m 除以7余2,则执行第五步;否则1m m =+,执行第二步. 第五步:输出m .

3. 小结:算法的基本思想.

三、巩固练习: 略

四、作业:教材P38第3题

相关主题
文本预览
相关文档 最新文档