尤拉計劃(ProjectEuler) - 數獨

Table of Contents


我知道有很多人靠程式解出Puzzleup的題目

如果你也對程式解題有興趣的話

不妨來這個網站 http://www.projecteuler.net (尤拉計畫)

目前已有9萬多個註冊會員

不過台灣這邊,玩的人實在很少,而且大部份的台灣會員幾乎都已經呈現休眠狀態

實在無法想像,台灣人資訊敏銳的程度,居然沒什麼人在玩

嚴格來說,這並不是競賽網站,不過他也有分數排行榜

一周一題,目前已出到276題,分數的的排行是根據解題數來排的

可以把它想像成一題一分,同分的就按照解決時間的先後來排,沒有同名次的問題

答錯沒有倒扣,你可以一直答,直到答對為止,

不過,為了防止你暴力破解答案,每上傳一次答案後, 間隔30秒內不能再上傳答案

分數榜跟統計資料要登入後才看得到,

目前按照答題數,分為Level 1~ Level 6等六個等級

解題數在25題到49題 Level 1:沒有等級代號

解題數在50題到99題 Level 2:沒有等級代號

解題數在100題到149題 Level 3:Novice(新手)

解題數在150題到199題 Level 4:Intermediate(中級)

解題數在200題到249題 Level 5: Expert(專家)

解題數在250題以上 Level 6:Legend(傳奇)

由於沒有什麼時間加分的規定,對於後來者沒有積分阻礙的問題

人人都有機會玩到第一名,(不過要追上276題 也有不小難度)

程式語言不限,你可以用任何程式語言,如C/C++, Basic, Pascal, Delphi等

套裝程式也可以,如matlab,Python, Haskell, Ruby等

甚至我在該網站的討論區內,還看過有人用excel解題

當然用紙筆算也可以,我有不少題目是靠紙筆跟按計算機算出來的

分數榜呢!一小時更新一次,夠快吧!因為全部都採程式自動計算跟處理

題目難度呢?由於可用程式解題,相當難,比puzzleup的題目難多了

如果你用的是用沒效率的解法,即使用現在賣場上最好最快的個人電腦,
程式可能要跑上幾百年還跑不出答案

或者是,知道題目在講什麼,卻不知道程式該如何寫起

(如第96題,題目是解50道數獨,用紙筆算還比較簡單
要換成程式直接破解,還真不知道從何寫起?)

有修過演算法的就知道,O(n^3)跟O(n)的差別是很可怕的
(別以為O(n^3)不會發生 第251題,如果直接用暴力破解法,就是O(n^3)的複雜度)

鑑別度呢?相當好(最難的題目,目前只有99人答對,最簡單的題目有8萬多人答對)

當然,跟其他競賽一樣,不管題目多難,始終有一群人鑑別不出來

他們是276題都答對的滿級分,唯一能鑑別他們的只有解答出來的時間

目前滿級分大約有將近40位,

滿級分的分佈大約跟國力強盛有一定的關聯性

例如:美國有10位,日本有6位,印度2位,俄羅斯2位,法國2位

而令人驚奇的是,巴西也有一位滿級分,烏克蘭一位,斯洛伐克一位,匈牙利一位


對於新玩家來說,如果時間上不寬裕,無法答完276題的話,

可以挑戰最新的25題,

另外有一個Eulerians排行榜,排行最新25題答對者的玩家,因為愈新的題目愈來愈難

但只有最新25題答對一半(13題)以上的玩家才列名


目前最新的題目是這題:

http://projecteuler.net/index.php?section=problems&id=276

[中譯]

三角形的三邊長a,b,c都是整數,且a≦b≦c。

假若gcd(a,b,c)=1,我們稱呼此種整數邊長的三角形為primitive三角形

在周長不超過一千萬之下(a+b+c≦10,000,000),有多少個primitive三角形?

目前只有118人答對(包括我)

歡迎大家來加入此網站
--

All Comments

Ingrid avatarIngrid2010-02-06
感覺滿有趣的 來玩玩看 感謝原po分享
Sarah avatarSarah2010-02-08
推這裡XD 前一陣子剛升Novice~
Ethan avatarEthan2010-02-13
另外給要練程式的人一個方向
這個站裡的題目大多遵守所謂「一分鐘定律」
也就是你有辦法寫出一個在現在普遍的個人電腦上花一分鐘以內
就能跑出解答的程式
Emily avatarEmily2010-02-17
話說用程式跑數獨可是經典的遞迴練習呢XD
Hardy avatarHardy2010-02-18
題外話, 我125題的程式當初被判WA時還被判得莫名奇妙XDD
Lydia avatarLydia2010-02-18
其實 一分鐘定律 我覺得應該解釋成分鐘等級的速度
Valerie avatarValerie2010-02-19
因為每個人的電腦速度還是不太一樣 編譯器也是有差
John avatarJohn2010-02-21
前面的題目還好 都有辦法一分鐘以內
Daph Bay avatarDaph Bay2010-02-24
愈後面的題目 他們都認為你電腦已經升級了
所以數字愈來愈大!
Frederica avatarFrederica2010-02-28
例如第251題 只有極少數的人能跑到一分鐘內
Lauren avatarLauren2010-03-02
大部份的人都跑到5~10分鐘
Valerie avatarValerie2010-03-03
也是啦...
Ophelia avatarOphelia2010-03-06
很有趣的網站 感謝分享
Margaret avatarMargaret2010-03-07
只會寫VB,但是現在電腦連VB都沒有。只好先做一些用
Rae avatarRae2010-03-11
Excel就能算出來的答案 用Excel算2^1000的數字和,有趣
Lauren avatarLauren2010-03-14
100!的數字和只好估計600多然後猜9的倍數 ^_*