ProjectEuler前十题(按难度升序排列)解析[中文版].pdf
上传人:sy****28 上传时间:2024-09-14 格式:PDF 页数:38 大小:423KB 金币:16 举报 版权申诉
预览加载中,请您耐心等待几秒...

ProjectEuler前十题(按难度升序排列)解析[中文版].pdf

ProjectEuler前十题(按难度升序排列)解析[中文版].pdf

预览

免费试读已结束,剩余 28 页请下载文档后查看

16 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

欧拉项目趣题分析TheKeytoProjectEuler’sProblemsASIMPLEOVERVIEWTOPROJECTEULER’SPROBLEMMasters21stCentury0AllareprovidedorinspiredbyProjectEuler.net。2所有问题编号皆按难度升序排列。文中插入的代码可能与原PDF的稍有不同,敬请原谅。PDF信息制作者JakWings联系方式j_kylin_AT_126.com制作工具XTEEX更新日期July11,2011i关于欧拉项目该文档来译自ProjectEuler.net什么是欧拉项目?欧拉项目提供了一系列富有挑战性的数学⁄计算机编程问题,要解答这些问题不是单纯懂数学就可以的了。虽然通过数学能令助你想出优雅而高效的解决方法,不过多数问题还是要依靠计算机以及对编程技巧的应用。之所以要创建欧拉项目,并持续发展它,是为了给那些好学的人提供一个趣味的平台,去深入探究陌生的领域,并学习新奇的理念。这些问题为谁而设?这些问题面向的对象包括:一,那些在基础课程上求知欲得不到满足的学生;二,虽不从事数学相关的工作但对数学感兴趣的人;三,那些想保持它们的数学解题能力的专家们。谁都有能力解决这些问题吗?这些问题的难度不一,但提供了一条经验归纳的学习链。即是说,通过解决一道问题,一个新的想法就会展示在你面前,并帮助你解决以前不懂的题目。因此,只要坚持解答这些问题的话,慢慢地你就会懂得如何解答每一个问题。我该从哪道题开始呢?这取决于你的智力。你可以在问题列表中看到每个问题分别被多少人解决过,显然,越多人解决过的问题就越简单,你可以从简单题目的开始做。我已经写好了解答题目的程序,不过要不要花几时间才算出答案呢?绝对不应该这样做!每一个问题都是精心设计的,并遵循“一分钟原则”。也就是说,即使你要花几小时去设计一个成功的算法去解决一个难题,但运用了这个算法的程序运行在一般配置的计算机上应该在一分钟之内得到结果。假如我的程序花了超过一分钟的时间得到问题的答案,是否介意呢?当然不介意,不过你应该再想想如何才能改进你的算法并缩短解题时间。另外请注意,一旦你解决了某个问题,你就能去到这个问题的讨论贴,在那里你能从那些解决了这个问题的人身上了解到一些不同的解题方法。ii我通过搜索引擎解决了问题,这有关系么?我们提倡你通过搜索引擎去研究这些问题,因为在这些问题的表面之下可能潜藏大量的数学精髓。然而,我们要分清“探讨方法”和“利用在其它网站上搜得的答案”,如果你直接把搜索到的答案复制提交,你还能得到提高吗?我检查我的程序很多遍了,但网站一直说我提交的答案是错误的!你们是不是错了什么?对于新发表的问题来说,的确很有可能是因为通过网络发表时出现了一些小问题,或者是问题的描述有点模糊且没被解释清楚。然而若很多人都解决了问题,且你运行了十次程序也得不到正确答案,你总不能说这是网站的问题吧?能提供一些解题的提示么?请仔细地审题并记下提供的例子,然后在草稿纸上推算一下,看能不能发现问题的解决思路。如果解题思路对你来说有点陌生,不妨通过网络或书籍获取相关信息,问题本身应该能告诉你该搜寻什么资料了。试着写个程序去解决问题的简单情况,并对照提供的例子来看算得的结果是否与之相符,这样你就知道你否接近正确的解答方法了。估计你的程序要计算出正确答案需要花多少时间,如果会超过一分钟的话,请重新构思解题方式。这一是如何开始的?欧拉项目是由ColinHughes,即欧拉(euler),在2001年十月发起的一个在mathschallenge.net上的小栏目。谁也没料到这些问题会变得如此受欢迎呢?它的会员数越来越多,自此以后欧拉项目在2006年在新的独立域名上安家了。欧拉项目是由谁来维护的?新问题的灵感皆来自我们的会员,并且这些问题都是一群优秀的数学家和程序员的辛勤劳动的结果。故简单地说,欧拉项目是由全体会员共同维护的。我能资助这个网站吗?无任欢迎!欧拉项目完全由它的会员资助,故如果你喜欢这些问题并想帮助我们减轻维护经费的话,请自愿捐赠吧。(PayPal捐赠按钮在其主页上)iii“欧拉项目,将鼓励和挑战所有热爱数学的人,令其在乐趣中提高能力。”("ProjectEulerexiststoencourage,challenge,anddeveloptheskillsandenjoymentofanyonewithaninterestinthefascinatingworldofmathemat