咳咳,我做为非正常网民网瘾戒除中心的砖家,正式给介绍介绍一下这个欧拉工程。
呃。。。还是请我们的校长──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
最好把中括号去掉~:)
lerosua
呃,你真懒 …
Louis Han
对啊,中括号有什么意义吗?
Iven
带中括号是列表解析,不带是迭代。
bones7456
恩,看来是有一点区别的,去掉中括号速度稍快~学习了~
zlbruce
最近在学haskell,想用haskell做做看
第一题:sum [ x | x <- [1..999], x `mod` 3 == 0 || x `mod` 5 == 0 ]
LeoWL
看看去……
TualatriX
骨头!收我为弟子吧!!!
bones7456
哈,那你来当“叫兽”吧~
delectate
真漂亮!
python好强大
shellex
这个…太暴力了。
其实只要3的倍数的和加上5的倍数的和然后减去重复的部分也就是15的倍数的和就是答案了,不用写程序..
xiooli
呵呵,喜欢骨头电击治疗的童鞋请尽快加入骨头的网瘾戒除中心哦
bones7456
别诬陷人啊,那是羊叫兽干的事情,本砖家绝不使用点击,嘿嘿。。
shenfeng
呵呵多加15倍数的数
Tusooa
也来打个酱油:
48
#!/usr/bin/bc
sum=0
for(i=1;i<=1000;i++)
sum=sum+i^i
do
sum%10^10
呵呵。
结果是9110846700
flyingzl
恩。不错。。不过看了下那个算法,更好。。不用遍历。,而且效率很高
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
不懂。为何有bc之简便(对于大数运算),还用c与蟒?