没啥意思的站点

欧拉工程

咳咳,我做为非正常网民网瘾戒除中心砖家,正式给介绍介绍一下这个欧拉工程
呃。。。还是请我们的校长──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])

就完美地搞定了,是多么地流畅,多么地自然,我就喜欢上了这门语言~
我们现在已经在逐步把很多题目翻译成中文了,所以,大家有空就去这里看看吧~最好是大家都能参与到其中来哦~

17 评论

  1. 最好把中括号去掉~:)

  2. 对啊,中括号有什么意义吗?

    • 带中括号是列表解析,不带是迭代。

      • 恩,看来是有一点区别的,去掉中括号速度稍快~学习了~

        >>> timeit.Timer('sum(n for n in range(1000) if n%3==0 or n%5==0)').timeit(100000)
        41.638976097106934
        >>> timeit.Timer('sum([n for n in range(1000) if n%3==0 or n%5==0])').timeit(100000)
        43.963929176330566
  3. 最近在学haskell,想用haskell做做看
    第一题:sum [ x | x <- [1..999], x `mod` 3 == 0 || x `mod` 5 == 0 ]

  4. 看看去……

  5. 骨头!收我为弟子吧!!!

  6. 真漂亮!

    python好强大

  7. 这个…太暴力了。
    其实只要3的倍数的和加上5的倍数的和然后减去重复的部分也就是15的倍数的和就是答案了,不用写程序..

  8. 呵呵,喜欢骨头电击治疗的童鞋请尽快加入骨头的网瘾戒除中心哦

  9. 呵呵多加15倍数的数

  10. 也来打个酱油:
    48

    #!/usr/bin/bc
    sum=0
    for(i=1;i<=1000;i++)
    sum=sum+i^i
    do
    sum%10^10

    呵呵。
    结果是9110846700

  11. 恩。不错。。不过看了下那个算法,更好。。不用遍历。,而且效率很高

    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

  12. 不懂。为何有bc之简便(对于大数运算),还用c与蟒?

发表评论