计算机解决问题的过程计算机是人脑的延伸,要研究计算机解决问题的过程,需要从人解决问题的过程谈起。1.“韩信点兵”的故事相传我国汉代有位大将军叫韩信,他在点兵时让士兵分别从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)公倍数法现在仿照上边用过的“公倍数法”,设要求的数为,则依题意,得联立方程组x1233253(*)72xnxnxn题:有物不知其数,三三数之剩a,五五数之剩b,七七数之剩c,问物几何?答:解为,(的选取应使).702115105sabck,kkZ0s歌诀明朝数学家程大位在《算法统宗》中把上式总结为一首通俗易懂的歌决:三人同行七十稀,五树梅花廿一枝,七子团圆正半月,除百零五便得知。其中正半月是指15,这个口诀把3,5,7;70,21,15及105这几个关键的数都总结在内了。详细说,歌诀的含义是:用3除的余数乘70,5除的余数乘21,7除的余数乘15,相加后再减去(“除”当“减”讲)105的适当倍数,就是要求的(最小)解了。702115105sabck当然,解,不是唯一的,每差105,都是另一个解答,但如果结合实际问题,答案往往就是唯一的了。例如一队士兵的大约人数,韩信应是知道的。总结:人解决问题的思路首先:观察、分析问题,收集必要的信息,然后根据已有的知识、经验进行判断、推理、尝试按一定的方法和步骤去解决问题。第二:解决同一个问题会有多种求解的方法。不同的方法有优劣之分。第三:解决问题有时还要靠人的“顿悟”、“灵感”。能不能让计算机来帮助我们解决问题呢?肯定地回答:能?如何用计算机解决问题计算机只懂得根据人的命令来执行相关的程序,而我们要编写程序,首先要分析问题:对问题进行详细地分析,通过分析,弄清楚已知条件下的初始状态及要达到的目标,找出求解问题的方法和过程,并抽取出一个数学模型,形成算法;然后要设计算法:将这个数学模型连同它要处理的数据用计算机能识别的方式描述出来,使之成为计算机能处理的对象;最后,编写程序:用程序设计语言设计出具体的问题求解过程,形成计算机程序,这样,计算机就会按照我们给定的指令一条一条地进行处理了。如何用计算机解决问题设计一个软件的步骤是:开始分析问题设计算法编写程序运行程序验证结果问题解决无论使用现成的软件解决问题,还是自己动手编程解决问题,其实质都是一样的:现有的计算机软件同样也经历了这些过程,其差别在于,用程序设计解决问题需要我们亲自动手设计软件,而使用现成的软件,是别人已经给我们设计好了的。•计算机程序(ComputerProgram)就是指示计算机如何去解决问题或完成任务的一组可执行的指令。•程序设计(ProgramDesign)就是寻求解决问题的方法,并将其实现步骤编写成计算机可以执行的程序的过程。•程序设计语言(ProgramLanguage)泛指一切用于书写计算机程序的语言。•注意:程序设计语言和计算机语言(Computer•Language)是两个不同的概念,程序设计语言是一种重要的计算机语言。实践1农夫的故事一个农夫带着一条狼、一头山羊和一篮蔬菜要过河,但只有一条船。乘船时,农夫只能带一样东西。当农夫在场的时候,这三样东西相安无事。一旦农夫不在,狼会吃羊,羊会吃菜。请设计一个算法,使农夫能安全地将这三样东西带过河。对于同一个问题,解决方法是否只有一种??过河步骤:1、农夫带羊过河2、农夫回来3、把狼带过河4、把羊带回来5、带蔬菜过河6、农夫回来7、把羊带过河解一:解二:1、农夫带羊过河2、农夫回来3’、带蔬菜过河4、把羊带回来5’、把狼带过河6、农夫回来7、把羊带过河演示课件实践2:“韩信分油”的算术游戏:“3斤葫芦、7斤罐、10斤油篓分一半”,就是用3斤、7斤和10斤这样三种容器来分出两个5斤,而量器只能是这三种东西。实践3:有一行数字:1,1,2,3,5,8,13,21……,试从中找出规律,人是怎样解决这个问题的?计算机是否能按人的思维去解决?它怎样做?