只显示主题贴

根据前面brute算法写的,这是暴力算法,在最好的情况下就是下面的情况,否则就跟递归的 fibs一样痛苦了: module Main where dict = ["hello", "world", "python", "ruby", "lisp", "haskell", "perl", "c++", "java", "c#"] isCharm [] = False isCharm w | elem w dict = True | otherwise = or [(isCharm $ take i w) && ...
可惜折腾了一晚上连它的安装包都没下载下来……
我小时候喜欢收集旧书摊上的科普类杂志,每本三四毛钱,记得涛到一本很古老的电子技术类的杂志,里面在连载一个计算机程序的讲座,就是讲 forth。
indra 写道factor 写道都是在消磨这无聊的人生。。。。。。。。。哈哈 国内居然真有人在玩 factor 啊!实在太高兴了。 这东东可是个极品呀,可惜玩 forth 这类语言的人少之又少。 来日还要向楼上的仁兄多多请教啊! ^_* 全都是 IOP(Infrequency Oriented Programming)爱好者啊
towjzhou 写道要用django建个web 2.0网站,所以今天花了一天试了试django,很是不爽,做为python界的killer app,和rails真不是一个层次上的。 说说几点: * 没有一个统一的目录结构,导致很多方面不爽,比如模板位置之类。 * 一般般的模板,还是喜欢直接代码内嵌型的模板技术,也不用写自定义标签了。 * 没有controller类,直接上函数了,看起来简单了,实则和多高级的用法无缘了。 * 模型是从类为中心对应到数据库,不是数据库为中心。 * admin这个东西很少有人用吧,还增加了复杂度,污染了模型类声名和字段声名。 * 跳转,html,url处理之类很原 ...
Haskell有个重要的特性就是 lazy evaluation , ghc 在编译的时候是会把函数调用展开,具体细节我没深入研究,总之在这里是不会有多余的调用和计算的。纯函数式语言性能也可以很好哦:) 而且在多核上通过适当的程序,打开多核支持,进行并行计算,性能可以更方便的提升。我在四核的服务器上测试过一个例子,几乎可以接近线性提高。
$ cat euler.hs module Main where import List sieve (p:ns) = p:(sieve [n | n <- ns, n `mod` p /= 0]) primes = sieve [2..] q7 = primes !! 10000 main = print q7 $ ghc -O2 euler.hs -o euler time ./euler 104743 real 0m3.376s user 0m3.380s sys 0m0.000s ps: 更正下, 应该是 !! 10000 ,列表0-based
在 haskell.org 的wiki上面专门有一个页就是收集 euler 题目的 haskell 解法的,我没有参考那里,你有兴趣可以看看上面的代码,应该是更正,我的很多是靠蛮力计算,尤其是素数和公因数一类的问题,涉及太多数学的知识了。 楼主看这里吧,我就不现宝了 http://www.haskell.org/haskellwiki/Euler_problems 你的代码里很多 filter, takeWhile 之类的看着和 haskell很像啊
q5 = foldr1 lcm [1..20] sieve (p:ns) = p:(sieve [n | n <- ns, n `mod` p /= 0]) primes = sieve [2..] q7 = primes !! 10001 够偷懒的~~
module Main whereimport Listq1 = sum $ nub ([3, 6 .. 999] ++ [5, 10 .. 995])fibs = 1 : scanl (+) 1 fibsq2 = sum [ i | i <- takeWhile (< 4000000) fibs, i `mod` 2 == 0]头两个的,先吃饭去了。
albertlee
搜索本博客
博客分类
最近加入圈子
最新评论