欧拉工程
咳咳,我做为非正常网民网瘾戒除中心的砖家,正式给介绍介绍一下这个欧拉工程。
呃。。。还是请我们的校长──lerosua──来介绍吧~下面引自这篇博文:
欧拉工程是一个用编程来解决一连串数学问题的项目。发现它对训练数学及编程挺有作用的。网上也有许多人做上面的题目并发布自己的算法。
上面共有261题,分几个等级,一级比一级难。我看了第261题的提交,目前只是22个。完成它绝对是时间及精力及耐力及智力的较量。
于是本人决定将此作为一个项目来做,逐步进阶。
骨头与xiooli同学也并肩作战。
我们解决的问题的源码将会发布在以下svn中。欢迎审阅.
http://nrciz.googlecode.com/svn/trunk/projecteuler
其实,之前(几个月前吧)我就已经做过几题了。可以说,正是因为欧拉工程,我才喜欢上python的,当我看到第一题用一句
sum([n for n in range(1000) if n%3==0 or n%5==0]) |
就完美地搞定了,是多么地流畅,多么地自然,我就喜欢上了这门语言~
我们现在已经在逐步把很多题目翻译成中文了,所以,大家有空就去这里看看吧~最好是大家都能参与到其中来哦~
Iven 在 2009年10月26日 21:56 说:【 】
最好把中括号去掉~:)
lerosua 在 2009年10月26日 22:15 说:【 】
呃,你真懒 …
Louis Han 在 2009年10月26日 22:28 说:【 】
对啊,中括号有什么意义吗?
Iven 在 2009年10月26日 22:33 说:【 】
带中括号是列表解析,不带是迭代。
bones7456 在 2009年10月27日 09:17 说:【 】
恩,看来是有一点区别的,去掉中括号速度稍快~学习了~
zlbruce 在 2009年10月27日 00:18 说:【 】
最近在学haskell,想用haskell做做看
第一题:sum [ x | x <- [1..999], x `mod` 3 == 0 || x `mod` 5 == 0 ]
LeoWL 在 2009年10月27日 08:11 说:【 】
看看去……
TualatriX 在 2009年10月27日 09:48 说:【 】
骨头!收我为弟子吧!!!
bones7456 在 2009年10月27日 10:09 说:【 】
哈,那你来当“叫兽”吧~
delectate 在 2009年10月27日 11:41 说:【 】
真漂亮!
python好强大
shellex 在 2009年10月28日 18:29 说:【 】
这个…太暴力了。
其实只要3的倍数的和加上5的倍数的和然后减去重复的部分也就是15的倍数的和就是答案了,不用写程序..
xiooli 在 2009年10月29日 11:34 说:【 】
呵呵,喜欢骨头电击治疗的童鞋请尽快加入骨头的网瘾戒除中心哦
bones7456 在 2009年10月29日 12:27 说:【 】
别诬陷人啊,那是羊叫兽干的事情,本砖家绝不使用点击,嘿嘿。。
shenfeng 在 2009年11月07日 22:09 说:【 】
呵呵多加15倍数的数
Tusooa 在 2010年06月23日 17:01 说:【 】
也来打个酱油:
48
#!/usr/bin/bc
sum=0
for(i=1;i<=1000;i++)
sum=sum+i^i
do
sum%10^10
呵呵。
结果是9110846700
flyingzl 在 2010年07月10日 23:53 说:【 】
恩。不错。。不过看了下那个算法,更好。。不用遍历。,而且效率很高
target=1000000000000000
def getRs(n):
p=target/n
return n*p*(p+1)/2
print getRs(3)+getRs(5)-getRs(15)
既然要求是3和5的倍数。。。比如3+6+9就可以为3*(1+2+3+…+n/3),还有就是5*(1+2+3+…+n/5)….
减去重复的就是3*5=15
tusooa 在 2010年07月16日 23:37 说:【 】
不懂。为何有bc之简便(对于大数运算),还用c与蟒?