作者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
→ jurian0101:已完成,只需33秒。 02/09 02:07
→ jurian0101:難點在於要優化四則運算,basic只支援到Long(2^31)簡單 02/09 02:09
→ jurian0101:說是10個位數以上的運算無法,需要弄巧。剛剛抓了兩個 02/09 02:10
→ jurian0101:弄巧成拙的bug之後就正常了。有趣。 02/09 02:11
推 stimim:把之前算過的記起來可以加快十倍以上 02/09 15:47
推 utomaya:這題應該是秒殺吧 02/09 15:52
→ utomaya:而且14題應該不用到O(n^2) 02/09 15:56
→ jurian0101:攤手~~外行囉。Orz 用C在零點幾秒內跑完的程式移植到 02/09 16:51
→ 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)
推 utomaya:不錯 不錯 你可以挑戰一下118題 是這題的延伸題型 02/10 10:36
推 babufong:u大已經上兩百啦 02/12 09:04
→ jurian0101:沒錯,正所謂台灣第一人。u大是也 02/12 14:04