挑战程序设计竞赛-求素数算法课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《挑战程序设计竞赛-求素数算法课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 挑战 程序设计 竞赛 素数 算法 课件
- 资源描述:
-
1、 素数(素数(prime number),又称质数质数,指在大于1的自然数中,除了1和此整数自身外,无法被其他自然数整除整除的数(也可定义为只有1和本身两个因数的数)。比1大但不是素数的数称为合数。1和0既非素数也非合数。素数在数论中有着非常重要的地位。最小的素数是2,也是素数中唯一的偶数偶数;其他素数都是奇数奇数。素数有无限多个,所以不存在最大的素数。围绕著素数存在很多问题、猜想和定理。著名的有“孪生素数猜想”和“哥德巴赫猜想”。关于素数的算法是信息学竞赛和程序设计竞赛中经常出现的基础算法,虽然题目各不相同,但都要涉及验证一个自然数是否为素数的问题。下面探讨寻找一定范围内素数的几个算法。根据
2、以上思路,可编写以下的试除法函豹:其实,可以对素数的定义进行进一步的分析。要判断数n是否为素数,不需要用n一直除到n-1才能确认,而只需要除到n 而就可以了。例如,n=15,则能被15整除的除数有1、3、5,对于除数5就不用判断,因为n被3整除时其商就是5,也就表示n能被5整除了。验证一个自然数是否为素数,这个问题早在中世纪就引起人们的注意,当时人们还在寻找一个公式可以一劳永逸地解决求素数的问题,直到高斯提出了素数产生的不确定性后,人们才认识到没有一个公式可以简单确认素数,从而人们才转去寻找各种验证素数的方法。一、试除法一、试除法 试除法是根据素数的定义得出的一种方法,用需要验证的数n逐个除以
3、从2开始至n-1中的所有数,若能被某一个数整除,表示有一个因数,说明数n不是素数:若直到n-1都不能被整除,则说明该数是素数。根据以上思路,可编写以下的试除法函数:试除法判断是否为素数的函数:int is_prime(int n)int i;if(n=1)return 0;/n不是素数,返回零 for(i=2;i=n;i+)if(n%i=0)return 0;/判断n能否被i整除 return 1;其实,可以对素数的定义进行进一步的分析。要判断数n是否为素数,不需要用n一直除到n-1才能确认,而只需要除到n 而就可以了。例如,n=15,则能被15整除的除数有1、3、5,对于除数5就不用判断,因
4、为n被3整除时其商就是5,也就表示n能被5整除了。改进后的是否为素数的函数:int is_prime(int n)int i;if(n=1)return 0;/n不是素数,返回零 for(i=2;i*i=n;i+)/for(int i=2;i=sqrt(n);+i)if(n%i=0)return 0;/判断n能否被i整除 return 1;改进后的程序中,在for循环中以i*i既i的平方与n值进行比较,就可以显著地减少循环的次数,提高验证的效率。这里用了 i*i=n 来代替 sqrt(n),可以避免调用函数sqrt(),其消耗时间较多,特别是在大量数据测试的时候消耗很明显。求出1000以内的所
5、有素数:#include int is_prime(int n)for(int i=2;i*i=n;i+)if(n%i=0)return 0;return 1;int main()int i,n=1000,num=0;for(i=2;i30000000000,数量级相当大。在一般的电脑上它不是一秒钟跑不出结果,它是好几分钟都跑不出结果的。这时可考虑采用另一种寻找素数的算法:著名的筛法(Eratosthenes)求素数方法。二、筛法 Eratoslhenes算法假设有一个筛子,用来存放2100之间的所有数。由于偶数都能被2整数,因此偶数都不是素数(2除外),则将这些数筛去,得到如图-A所示的数据
6、(设置了背景色的数字将被筛去)接着再将3的倍数筛去,得到如图-B所示结果。接下来继续将5的倍数筛去,得到图-C所示结果。最后再将7的倍数筛去,得到如图-D所示结果,即可得到100以内的所有素数。原理很简单,就是当i是素数的时候,i的所有的倍数必然是合数。如果i已经被判断不是素数了,那么再找到i后面的素数来把这个素数的倍数筛掉。下面用图来演示如何用这种方法求100以内的素数。图-A 将2的倍数筛去 图-B 将3的倍数筛去 图-C 将5的倍数筛去 图-D 将7的倍数筛去 从前面的图示中可看到,在使用Eratosthenes算法进行筛选时,只需要执行4次筛选就完成了100以内的素数的筛选,效率非常高
7、。如果要筛选的数据范围更大,由于只需要选择已经筛选过的素数对后面的数进行筛选,因此可快速筛选出后面的素数。Eratosthenes算法比试除法的效率要高得多。根据筛法所示的过程编写相应的程序,具体代码如下:#include#define MAX 1000000 bool primeMAX;int main()int i,j,num=0;for(i=2;iMAX;i+)primei=true;for(i=2;iMAX;i+)if(primei)for(j=i+i;jMAX;j+=i)primej=false;for(i=2;iMAX;i+)if(primei=true)num+;printf(%
8、8d,i);printf(n Total=%d,num);return 0;通过上面的筛法实现可以看出,用筛法直接判断素数是很有限的,筛法受内存的限制,要判断n是否为素数,需要开大小为n的bool数组。当n很大的时候,显然是不可取的。所以我们可以折中以上两种算法,将试除法和筛法结合在一起。再深入理解,你确实会发现一个本质问题。从2到n 中,存在很多不必要的判断,比如,n不能被2整除的话,n必然不能被4整除,必然不能被2的倍数整除。所以,我们再结合筛选法,优化处理小于n 的所有素数。这样在大量测试数据的时候,效率就提高很多了。void prime(int n)memset(isprime,0,s
9、izeof isprime);memset(p,0,sizeof p);np=0;for(int i=2;i=n;i+)if(!isprimei)pnp+=i;for(int j=0;j np&pj*i=n;j+)isprimepj*i=1;if(i%pj=0)break;bool Brute_Force3(int n)for(int i=0;pi*pi=n;i+)if(n%pi=0)return false;return true;11醉翁亭记醉翁亭记 1反复朗读并背诵课文,培养文言语感。反复朗读并背诵课文,培养文言语感。2结合注释疏通文义,了解文本内容,掌握文本写作思路。结合注释疏通文义,
10、了解文本内容,掌握文本写作思路。3把握文章的艺术特色,理解虚词在文中的作用。把握文章的艺术特色,理解虚词在文中的作用。4体会作者的思想感情,理解作者的政治理想。一、导入新课范仲淹因参与改革被贬,于庆历六年写下岳阳楼记,寄托自己体会作者的思想感情,理解作者的政治理想。一、导入新课范仲淹因参与改革被贬,于庆历六年写下岳阳楼记,寄托自己“先天下之忧而忧,后天下之乐而乐先天下之忧而忧,后天下之乐而乐”的政治理想。实际上,这次改革,受的政治理想。实际上,这次改革,受到贬谪的除了范仲淹和滕子京之外,还有范仲淹改革的另一位支持者到贬谪的除了范仲淹和滕子京之外,还有范仲淹改革的另一位支持者北宋大文学家、史学家
11、欧阳修。他于庆历五年被贬谪到滁州,也就是今天的安徽省滁州市。也是在此期间,欧阳修在滁州留下了不北宋大文学家、史学家欧阳修。他于庆历五年被贬谪到滁州,也就是今天的安徽省滁州市。也是在此期间,欧阳修在滁州留下了不逊于岳阳楼记的千古名篇逊于岳阳楼记的千古名篇醉翁亭记。接下来就让我们一起来学习这篇课文吧!【教学提示】结合前文教学,有利于学生把握本文写作背景,进而加深学生对作品含义的理解。二、教学新课目醉翁亭记。接下来就让我们一起来学习这篇课文吧!【教学提示】结合前文教学,有利于学生把握本文写作背景,进而加深学生对作品含义的理解。二、教学新课目标导学一:认识作者,了解作品背景作者简介:欧阳修标导学一:认
12、识作者,了解作品背景作者简介:欧阳修(10071072),字永叔,自号醉翁,晚年又号,字永叔,自号醉翁,晚年又号“六一居士六一居士”。吉州永丰。吉州永丰(今属江西今属江西)人,因吉州原属庐陵郡,因此他又以人,因吉州原属庐陵郡,因此他又以“庐陵欧阳修庐陵欧阳修”自居。谥号文忠,自居。谥号文忠,世称欧阳文忠公。北宋政治家、文学家、史学家,与韩愈、柳宗元、王安石、苏洵、苏轼、苏辙、曾巩合称世称欧阳文忠公。北宋政治家、文学家、史学家,与韩愈、柳宗元、王安石、苏洵、苏轼、苏辙、曾巩合称“唐宋八大家唐宋八大家”。后人又将其与韩愈、柳宗元和苏轼合称。后人又将其与韩愈、柳宗元和苏轼合称“千古文章四大家千古文章
13、四大家”。关于关于“醉翁醉翁”与与“六一居士六一居士”:初谪滁山,自号醉翁。既老而衰且病,将退休于颍水之上,则又更号六一居士。客有问曰:初谪滁山,自号醉翁。既老而衰且病,将退休于颍水之上,则又更号六一居士。客有问曰:“六一何谓也?六一何谓也?”居士曰:居士曰:“吾家藏书一万卷,集录三代以来金石遗文一千卷,吾家藏书一万卷,集录三代以来金石遗文一千卷,有琴一张,有棋一局,而常置酒一壶。有琴一张,有棋一局,而常置酒一壶。”客曰:客曰:“是为五一尔,奈何?是为五一尔,奈何?”居士曰:居士曰:“以吾一翁,老于此五物之间,岂不为六一乎?以吾一翁,老于此五物之间,岂不为六一乎?”写作背景:宋仁宗庆历五年写作
14、背景:宋仁宗庆历五年(1045年年),参知政事范仲淹等人遭谗离职,参知政事范仲淹等人遭谗离职,欧阳修上书替他们分辩,被贬到滁州做了两年知州。到任以后,他内心抑郁,但还能发挥欧阳修上书替他们分辩,被贬到滁州做了两年知州。到任以后,他内心抑郁,但还能发挥“宽简而不扰宽简而不扰”的作风,取得了某些政绩。醉翁亭记就是在这个时期写就的。目标导学二:朗读文章,通文顺的作风,取得了某些政绩。醉翁亭记就是在这个时期写就的。目标导学二:朗读文章,通文顺字字1初读文章,结合工具书梳理文章字词。初读文章,结合工具书梳理文章字词。2朗读文章,划分文章节奏,标出节奏划分有疑难的语句。节奏划分示例朗读文章,划分文章节奏,
15、标出节奏划分有疑难的语句。节奏划分示例环滁环滁/皆山也。其皆山也。其/西南诸峰,林壑西南诸峰,林壑/尤美,望之尤美,望之/蔚然而深秀者,琅琊也。山行蔚然而深秀者,琅琊也。山行/六七里,渐闻六七里,渐闻/水声潺潺,而泻出于水声潺潺,而泻出于/两峰之间者,酿泉也。峰回两峰之间者,酿泉也。峰回/路转,有亭路转,有亭/翼然临于泉上者,醉翁亭也。作亭者翼然临于泉上者,醉翁亭也。作亭者/谁?山之僧谁?山之僧/曰曰/智仙也。名之者智仙也。名之者/谁?太守谁?太守/自谓也。太守与客来饮自谓也。太守与客来饮/于此,饮少于此,饮少/辄醉,而辄醉,而/年又最高,故年又最高,故/自号曰自号曰/醉翁也。醉翁之意醉翁也。
16、醉翁之意/不在酒,在乎不在酒,在乎/山水之间也。山水之乐,得之心山水之间也。山水之乐,得之心/而寓之酒也。节奏划分思考而寓之酒也。节奏划分思考“山行山行/六七里六七里”为什么不能划分为为什么不能划分为“山山/行六七里行六七里”?明确:明确:“山行山行”意指意指“沿着山路走沿着山路走”,“山行山行”是个状中短语,不能将其割裂。是个状中短语,不能将其割裂。“望之望之/蔚然而深秀者蔚然而深秀者”为什么不能划分为为什么不能划分为“望之蔚然望之蔚然/而深秀者而深秀者”?明确:?明确:“蔚然而深秀蔚然而深秀”是两个并列的词,不宜割裂,是两个并列的词,不宜割裂,“望望之之”是总起词语,故应从其后断句。【教学
17、提示】引导学生在反复朗读的过程中划分朗读节奏,在划分节奏的过程中感知文意。对于部分结构复杂的句子,教师可做适当的讲解引导。目标导学三:结合注是总起词语,故应从其后断句。【教学提示】引导学生在反复朗读的过程中划分朗读节奏,在划分节奏的过程中感知文意。对于部分结构复杂的句子,教师可做适当的讲解引导。目标导学三:结合注释,翻译训练释,翻译训练1学生结合课下注释和工具书自行疏通文义,并画出不解之处。【教学提示】节奏划分与明确文意相辅相成,若能以节奏划分引导学生明确文意最好;若学生理解有限,亦可在解读文意后把学生结合课下注释和工具书自行疏通文义,并画出不解之处。【教学提示】节奏划分与明确文意相辅相成,若
18、能以节奏划分引导学生明确文意最好;若学生理解有限,亦可在解读文意后把握节奏划分。握节奏划分。2以四人小组为单位,组内互助解疑,并尝试用以四人小组为单位,组内互助解疑,并尝试用“直译直译”与与“意译意译”两种方法译读文章。两种方法译读文章。3教师选择疑难句或值得翻译的句子,请学生用两种翻译方法进行翻译。翻译示例:若夫日出而林教师选择疑难句或值得翻译的句子,请学生用两种翻译方法进行翻译。翻译示例:若夫日出而林霏开,云归而岩穴暝,晦明变化者,山间之朝暮也。野芳发而幽香,佳木秀而繁阴,风霜高洁,水落而石出者,山间之四时也。直译法:那太阳一出来,树林里的雾气散开,云雾聚拢,山谷就显得昏暗了,霏开,云归而
19、岩穴暝,晦明变化者,山间之朝暮也。野芳发而幽香,佳木秀而繁阴,风霜高洁,水落而石出者,山间之四时也。直译法:那太阳一出来,树林里的雾气散开,云雾聚拢,山谷就显得昏暗了,朝则自暗而明,暮则自明而暗,或暗或明,变化不一,这是山间早晚的景色。野花开放,有一股清幽的香味,好的树木枝叶繁茂,形成浓郁的绿荫。天高气爽,霜色洁白,泉水浅了,石底露出水面,这是朝则自暗而明,暮则自明而暗,或暗或明,变化不一,这是山间早晚的景色。野花开放,有一股清幽的香味,好的树木枝叶繁茂,形成浓郁的绿荫。天高气爽,霜色洁白,泉水浅了,石底露出水面,这是山中四季的景色。意译法:太阳升起,山林里雾气开始消散,烟云聚拢,山谷又开始显
20、得昏暗,清晨自暗而明,薄暮又自明而暗,如此暗明变化的,就是山中的朝暮。春天野花绽开并散发出阵阵幽香,夏山中四季的景色。意译法:太阳升起,山林里雾气开始消散,烟云聚拢,山谷又开始显得昏暗,清晨自暗而明,薄暮又自明而暗,如此暗明变化的,就是山中的朝暮。春天野花绽开并散发出阵阵幽香,夏日佳树繁茂并形成一片浓荫,秋天风高气爽,霜色洁白,冬日水枯而石底上露,如此,就是山中的四季。【教学提示】翻译有直译与意译两种方式,直译锻炼学生用语的准确性,但可能会降低译文的美感;日佳树繁茂并形成一片浓荫,秋天风高气爽,霜色洁白,冬日水枯而石底上露,如此,就是山中的四季。【教学提示】翻译有直译与意译两种方式,直译锻炼学
21、生用语的准确性,但可能会降低译文的美感;意译可加强译文的美感,培养学生的翻译兴趣,但可能会降低译文的准确性。因此,需两种翻译方式都做必要引导。全文直译内容见我的积累本。目标导学四:解读文段,把握文本内容意译可加强译文的美感,培养学生的翻译兴趣,但可能会降低译文的准确性。因此,需两种翻译方式都做必要引导。全文直译内容见我的积累本。目标导学四:解读文段,把握文本内容1赏析第一段,赏析第一段,说说本文是如何引出说说本文是如何引出“醉翁亭醉翁亭”的位置的,作者在此运用了怎样的艺术手法。的位置的,作者在此运用了怎样的艺术手法。明确:首先以明确:首先以“环滁皆山也环滁皆山也”五字领起,将滁州的地理环境一笔
22、勾出,点出醉翁亭坐落在群山之中,并纵观滁州全貌,鸟瞰群山环抱之景。接着作者将五字领起,将滁州的地理环境一笔勾出,点出醉翁亭坐落在群山之中,并纵观滁州全貌,鸟瞰群山环抱之景。接着作者将“镜头镜头”全景移向局部,先写全景移向局部,先写“西南诸峰,林壑尤西南诸峰,林壑尤美美”,醉翁亭坐落在有最美的林壑的西南诸峰之中,视野集中到最佳处。再写琅琊山,醉翁亭坐落在有最美的林壑的西南诸峰之中,视野集中到最佳处。再写琅琊山“蔚然而深秀蔚然而深秀”,点山,点山“秀秀”,照应上文的,照应上文的“美美”。又写酿泉,其名字透出了泉与酒的关系,好泉酿好酒,好酒叫人醉。又写酿泉,其名字透出了泉与酒的关系,好泉酿好酒,好酒
展开阅读全文