欧拉计划是什么?

欧拉计划(Project Euler)是一个具有挑战性的不仅仅需要具备数学能力的“数学/计算机编程”问题集合。数学方面的知识可以帮助你获得优雅而高效的解决方案,与此同时,计算机应用和编程技巧也不可或缺。

开展欧拉计划这个项目并且持续进行下去的主要目的是提供一个有趣味并且有创造性的环境,在这里可以探索未知领域、学习新的概念。

这些问题适合那些人?

可能的解题者包括那些不满足于教学内容的学生,对数学问题感兴趣的非数学家,以及希望能够锻炼自己的解决问题能力和数学能力的专业人士。当然,一切都是纯英文,虽然描述题目的英文不太难,但对于感兴趣的人特别是青少年来说应该具备一定的英语基础。

任何人都可以解出问题么?

欧拉计划提供的问题集有不同的难度以及多种解题经验,可以进行连续的启发式的学习。也就是说,通过解决一个问题,提供给解题者一个新的概念,使解题者可以接触之前无法涉及的问题。因此,有毅力的参与者将会逐一完成每一个题目。

我应该从哪里开始?

从哪里开始,取决于你的水平。在问题列表中你可以看到每一个问题有多少人解决,一般来说,解决的人越多,问题越简单。

我写出了程序,但是程序运行了好几天程序才得到答案,有问题么?

当然没有问题。这里每个问题都符合“一分钟原则”,也就是说尽管这些问题中的难题可能需要很长一段时间来设计成功的算法,但是在一个普通的计算机上,高效的程序应该在一分钟之内得到答案。

如果花费超过一分钟的时间解决问题,有问题么?

这个当然没有问题,但是你可能需要回到问题看看如何能够改善你的思路。请记住,一旦你解决了某个特定的问题,你就可以进入关于这个问题的论坛参与讨论,并且从其他解决了这个问题的参与者那里获得一些灵感。

我使用搜索引擎解决了问题,有问题么?

因特网是信息时代的巨大资源库,合理利用因特网去研究问题是应该鼓励的,特别是在这些问题表面之下往往隐藏着一些数学的宝藏。然而,在研究解决思路和在其他网站寻找现成的答案之间,有一条明显的界线。如果你简单的复制了一个答案,那么你最终得到了什么呢?

我检查了十遍程序,但是我的答案还是不对,是不是标准答案出了问题?

对于那些新发布的问题,确实有可能会有一些小的错误成为漏网之鱼,或者是在遣词造句上模糊以至于问题没有被解释清楚。然而,当有很多参与者都与标准答案一致,而只有少数人仍在怀疑标准答案时,那么很有可能是“睡不着觉怨枕头”。

是否有关于如何解题的提示?

认真阅读题目本身的细节,仔细分析对题目给出的示例,研究题目时使用纸和笔来获得一些关于解题的思路。题目本身可能会包含一些线索,如果这些对你来说比较陌生,那么利用网络或者书本去获得相关的背景知识。可以编写一些简陋的程序来满足那些简单的示例,对比程序的输出和示例的答案,这样你就可以确认自己理解了题目的要求,并且找到正确的方向。利用这些简单的常识去推断得到最终答案的程序运行时间,如果发现程序需要运行远超过一分钟的时间,那么重新考虑你的解决方案。

这个项目是如何开始的?

欧拉计划由 Colin Hughes(也被人们称为 euler)在 2001年10月创建,一开始时作为 mathschallenge.net 网站的一个子栏目。你知道这些问题在当时有多么流行么?随着会员人数的不断增长,欧拉计划在 2006 年有了独立的域名。

谁在运行欧拉计划?

新问题的创意来自我们的会员,天才而勤奋的数学家和程序员组成了开发团队。一句话来说,是会员们在运行欧拉计划。


欧拉计划致力于鼓励、挑战并且发展解题技巧,并且为那些对迷人的数学世界有兴趣的人提供乐趣。


在解题时,除了纸和笔以外,请准备好以下图书,以便随时查阅:

在这个合集中,我将主要使用 Haskell 语言解题。如果需要了解如何安装 Haskell 软件,请参阅:Haskell趣学指南



Euler_skyivben