2014保送生上课讲义.doc

  1. 1、本文档共37页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第一章 算法和算法的描述 1.1 用计算机解决问题的过程 1742年6月7日,德国数学家哥德巴赫(C.Goldbach)提出了一个大胆的数学猜想:任何一个偶数(≥6)均可表示两个素数(质数)之和,简称:“l+1”,这一猜想这就是数学史上著名的“哥德巴赫猜想”。两百多年来,“哥德巴赫猜想”吸引了世界上众多的数学家研究,但始终没有结果,它已成为世界数学界一大悬案。目前的最佳结果是中国数学家陈景润于1966年的证明。他运用新的方法,在一间六平方米的小屋里,借助一盏昏暗的煤油灯,用一支笔,耗去了几麻袋的草稿纸,攻克了世界著名数学难题“哥德巴赫猜想”中的“1+2”,即证明了“任何一个充分大的偶数都是一个素数及一个不超过两个素数的乘积之和”,称为陈氏定理(Chen‘s Theorem)。他创造了距摘取这颗数论皇冠上的明珠“1+1”只是一步之遥的辉煌,在“哥德巴赫猜想”的研究上居世界领先地位。 在数学课程中已经学习素数是这样的数123456791是否为素数?就需要验证从2到123456790之中是否有123456791的约数,如果没有,则为素数,反之则为合数,相信这是一件十分繁琐的工作。而如果使用算法与程序设计的知识,设计出解决此问题的算法并编制好程序,那么此项工作将会变得十分容易。运行程序后输入相应数据,立即就能得出结果。 一般来说,使用计算机来解决问题经过以下几个步骤: 一、分析问题 分析问题阶段的目的是确定用计算机“做什么”。在日常生活中会遇到各种各样的问题,许多问题可以使用计算机来解决,例如,编制一份小报、统计比赛成绩、“沉鱼落雁雁之间的整数逐一进行判断,判断是否为整数N的因子。如果一个也不存在,则整数N就是素数,否则就是合数。因为根据合数的条件可以知道,整数N可以分解因子A×B,则A,B中必有一个满足条件小于等于。 三、设计步骤 根据找到的方法,需要设计更详细的步骤,以便根据这些步骤能够方便编写程序。下面采用自然语言的方法来描述判断一个整数N是否为素数的详细步骤: 1)输入整数N的值; 2)将A的值置为2; 3)将B的值置为; 4)判断A≤B?,条件成立执行下一步,否则搜索结束跳转至第7步; 5)判断N能否整除A,若能整除,即找到因子,跳转第7步; 6)A的值增加1,跳转至第4步; 7)判断AB?,条件成立输出结果“是素数”,否则输出结果是“合数”。 四、编程求解 在确定好算法后,就可以选择一种程序设计语言来实现。将算法表示成程序,得出最终结果就是程序设计的过程。 课堂实践 1.运行判断素数的程序。 2.一个农夫带着一条狼、一头山羊和一篮蔬菜要过河,但只有一条小船。乘船时,农夫只能带一样东西,当农夫在场时,这三样东西相安无事,一旦农夫不在,狼会吃羊,羊会吃菜。请列出一种方法,使农夫能安全地将这三样东西带过河。运行“农夫过河”程序,并尝试写出解决问题的步骤。 3.传教士与野人过河问题。有3个野人和3个传教士分别在河的两岸,需要过河。现在有一艘小船,最多能容两人,在渡河时,无论是在左岸还是右岸,如果野人的数目超过传教士的数目,野人就会吃掉传教士。问怎样才能安全渡河?运行“传教士与野人过河”程序,并尝试写出解决问题的步骤。 1.2 算法和算法的描述 在数学课上,小明遇到了这样一个问题:“有一根长度为L厘米的铜丝,制作一个面积为S平方厘米的矩形框,请问矩形框的长H和宽W分别是多少?” 这是一个一元二次方程的应用问题。根据已知条件可以写出式子: L=2(H+W) …………………………① S=H×W ……………………………② 由①②式子可得S=H×(-H),即H2-H+S=0,然后使用消元法求得H,再求出W。 在数学课程上,已经了解使用消元法来求解一元二次方程形如ax2+bx+c=0的实数根的具体步骤可以描述如下: 输入方程系数a,b,c; 计算d=b2-4ac; 判断d≤0?,如果条件成立,输出“方程无实数根”并跳转至第7步; 根据公式计算方程的其中一根X1=; 根据公式计算方程的另一根X2=; 输出方程的根X1,X2的值; 结束; 一、什么是算法 以上这些具体步骤描述了“怎么做”的过程,就是算法(Algorithm)。 算法”一词最早起源于公元9世纪的阿拉伯有一位名叫花拉米的阿拉伯数学家,在他的一生中发现了很多求解算术问题的算法,并撰写了《合并与回代》一书,合并与回代这两个词是指解方程时所用的两个主要过程,后被人简称为代数学任何解决问题的过程都是由一定的步骤组成的,把解决问题确定的方法和有限的步骤称作为算法。当代著名计算机科学家D.E.Knuth在他撰写的《The art of computer programming》一书中写到:一个算法,就是一个有穷规则的集合,其中之规则规定了一个解决某一特定类型的问题的运算

文档评论(0)

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

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档