计算机解决问题的过程
选修一 算法与程序设计
人机大战第二季发布会
2017年4月10日,中国围棋协会和浙江省体育局携手Google共同宣布,三方将联合主办“中国乌镇?围棋峰会”,届时AlphaGo将再度与最顶尖的人类棋手进行对弈。这场为期5天,有关围棋与人工智能的赛事将于5月23日-27日在中国最富盛名的水乡古镇,世界互联网大会永久会址,浙江桐乡乌镇举行。
计算机是人脑的延伸,要研究计算机解决问题的过程,需要从人解决问题的过程谈起。
1.“韩信点兵”的故事
(学生活动:看书p4(2),了解韩信其人。)
相传我国汉代有位大将军叫韩信,他在点兵时让士兵分别从1~3、1~5、1~7报数,然后报告各次的余数,这样,就知道总共有多少士兵。然后韩信就凭这些数,可以求得这队士兵的总人数。
这个问题即著名的“韩信点兵”问题,又称“鬼谷算”、“秦王暗点兵”
这里面有什么秘密呢?
2.《孙子算经》中的题目
我国古代数学名著《孙子算经》中有“物不知数”的题目:今有物不知其数,三三数之剩2,五五数之剩3,七七数之剩2,问物几何?
请同学们开动脑筋,算算该“物”最少有几个?看看能不能找出多种解决方法
2.《孙子算经》中“有物不知其数” 问题的解答
1)筛选法.
首先写出“用3除余2”的数:2,5,8,11,14,17,20,23,26,29,…
其中,“用5除余3”的数:8,23,…
其中,“用7除余2”的数:23,…
由此得到,23是最小的一个解。
至于下一个解是什么,要把“…”写出来才
知道;实践以后发现,是要费一点儿功夫的。
2)公倍数法
现在仿照上边用过的“公倍数法”,设要求的数为 ,则依题意,得联立方程组
当然,解,不是唯一的,
每差105,都是另一个解答,
但如果结合实际问题,答案往往就是唯一的了。
例如一队士兵的大约人数,韩信应是知道的。
人解决问题的一般过程
观察、分析问题
收集必要的信息
解决问题
判断、推理
根据已有的
知识、经验
按照一定的
方法和步骤
总结:人解决问题的思路
首先:观察、分析问题,收集必要的信息,然后根据已有的知识、经验进行判断、推理、尝试按一定的方法和步骤去解决问题。
第二:解决同一个问题会有多种求解的方法。不同的方法有优劣之分。
第三:解决问题有时还要靠人的“顿悟”、“灵感”。
肯定地回答:能!!!
能不能让计算机来帮助我们解决问题呢?
如何用计算机解决问题
计算机只懂得根据人的命令来执行相关的程序,而我们要编写程序,
首先要分析问题:
对问题进行详细地分析,通过分析,弄清楚已知条件下的初始状态及要达到的目标,找出求解问题的方法和过程,并抽取出一个数学模型,形成算法;
然后要设计算法:
将这个数学模型连同它要处理的数据用计算机能识别的方式描述出来,使之成为计算机能处理的对象;
最后,编写程序:
用程序设计语言设计出具体的问题求解过程,形成计算机程序,
这样,计算机就会按照我们给定的指令一条一条地进行处理了。
计算机解决问题的基本过程
开始
分析问题
设计算法
编写程序
运行程序
验证结果
问题解决
无论使用现成的软件解决问题,还是自己动手编程解决问题,其实质都是一样的:现有的计算机软件同样也经历了这些过程,
其差别在于,用程序设计解决问题需要我们亲自动手设计软件,而使用现成的软件,是别人已经给我们设计好了的。
人机“问题解决”对比
相同点
不同点
人类解决问题
用计算机解决问题
计算速度
精确度
自动化
分析问题、设计算法、得出结果等
计算速度比较慢
计算速度比较快
精确度不高,易出错
编写程序、调试程序、运算速度快
具有一定的自动化
不具有自动化解决问题
小结
用计算机程序解决问题的基本过程
设计算法
分析问题
编写程序
调试程序
检测结果
人工解题与计算机解题的异同点
一个农夫带着一条狼、一头山羊和一篮蔬菜要过河,但只有一条船。乘船时,农夫只能带一样东西。当农夫在场的时候,这三样东西相安无事。一旦农夫不在,狼会吃羊,羊会吃菜。请设计一个算法,使农夫能安全地将这三样东西带过河。
课外拓展:农夫的故事
对于同一个问题,解决方法是否只有一种??
The End