作者jurian0101 (小维)
看板puzzle
标题Re: [分享] 尤拉计划(ProjectEuler)
时间Tue Feb 9 00:26:48 2010
※ 引述《utomaya (乌托马雅)》之铭言:
: 我知道有很多人靠程式解出Puzzleup的题目
: 如果你也对程式解题有兴趣的话
: 不妨来这个网站 http://www.projecteuler.net (尤拉计画)
: 目前已有9万多个注册会员
: 不过台湾这边,玩的人实在很少,而且大部份的台湾会员几乎都已经呈现休眠状态
: 实在无法想像,台湾人资讯敏锐的程度,居然没什麽人在玩
: 严格来说,这并不是竞赛网站,不过他也有分数排行榜
: 一周一题,目前已出到276题,分数的的排行是根据解题数来排的
: 可以把它想像成一题一分,同分的就按照解决时间的先後来排,没有同名次的问题
: 解题数在25题到49题 Level 1:没有等级代号
妈!!我在这里。
: 程式语言不限,你可以用任何程式语言,如C/C++, Basic, Pascal, Delphi等
我只学过初心者等级的,常是土法炼钢法的Basic。对演算法的认识只有名目上,
例如会用Dynamic Programming和greedy approach。back-tracking以上牵涉到tree资料
结构的根本不会 (泪目)。
: 套装程式也可以,如matlab,Python, Haskell, Ruby等
外行人,如果有时间可以学。
: 甚至我在该网站的讨论区内,还看过有人用excel解题
有些题目你若假设手边只有excel ,研究一下穷变之道也蛮好玩的。
然後发现Office巨集编辑的地方都有Visual Basic编辑器。就用了。
: 当然用纸笔算也可以,我有不少题目是靠纸笔跟按计算机算出来的
例如 求3或5的倍数的总和、0到9第一百万个排列是什麽数 这两题。
: 用没效率的方法,在市面上性能最好的个人电脑上可能要跑上几百年还跑不出答案。
泪目~~~~~~~
: 有修过演算法的就知道,O(n^3)跟O(n)的差别是很可怕的
: (别以为O(n^3)不会发生 第251题,如果直接用暴力破解法,就是O(n^3)的复杂度)
虽然和puzzle无关,我想问一下14题的写法,我已经卡两整天了。
溢位与O(n^2)的地狱啊 ←将主回圈每次加倍估计值
简单的示意就可以帮我大忙了。 (叹,现在puzzle版真的什麽都有了。)
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 218.164.22.232
1F:→ jurian0101:已完成,只需33秒。 02/09 02:07
2F:→ jurian0101:难点在於要优化四则运算,basic只支援到Long(2^31)简单 02/09 02:09
3F:→ jurian0101:说是10个位数以上的运算无法,需要弄巧。刚刚抓了两个 02/09 02:10
4F:→ jurian0101:弄巧成拙的bug之後就正常了。有趣。 02/09 02:11
5F:推 stimim:把之前算过的记起来可以加快十倍以上 02/09 15:47
6F:推 utomaya:这题应该是秒杀吧 02/09 15:52
7F:→ utomaya:而且14题应该不用到O(n^2) 02/09 15:56
8F:→ jurian0101:摊手~~外行罗。Orz 用C在零点几秒内跑完的程式移植到 02/09 16:51
9F:→ jurian0101:Basic耗时似乎起码增加十倍的样子 02/09 16:52
※ 编辑: jurian0101 来自: 218.164.19.49 (02/09 16:59)
32题的pandigit 只能用暴力法了,至少是有限步= = 362880
12x483=5796
18x297=5346
27x198=5346
28x157=4396
39x186=7254
4x1738=6952
4x1963=7852
42x138=5796
48x159=7632
注意到 5346 和 5796 重复出现,根据提示只要算一次加总。
※ 编辑: jurian0101 来自: 218.164.19.49 (02/09 21:32)
10F:推 utomaya:不错 不错 你可以挑战一下118题 是这题的延伸题型 02/10 10:36
11F:推 babufong:u大已经上两百啦 02/12 09:04
12F:→ jurian0101:没错,正所谓台湾第一人。u大是也 02/12 14:04