中年危機與 Project Euler
當兵前曾沈迷過 Project Euler,這是一個有很多數學題的網站,可以手算或寫程式來解,然後上傳答案。解錯了,摸摸鼻子回頭繼續解;解對了,除了像 RPG 練等一樣有數字增加的快感,最讓我興奮的是,你被允許進入「強者殿堂」——專屬該題的秘密討論區,裡面有每個征服過此難題的人,炫耀般留下各種精妙解法讓你大開眼界。
Project Euler 也是有些規定的。儘管沒有硬性要求,他希望每個解答的程式不要跑超過一分鐘(或十分鐘,總之不要太無腦暴力。每個人電腦速度不同,語言效率不同,這只能自由心證)。希望來玩的人藉由思考如何縮短程式執行時間,學到更好的演算法、更深入了解問題的本質。
想起快退伍時,有次我放假在網站上抄了好幾題比較不需電腦也可解的,趁在營區站機動班百無聊賴的時光,竟手算 Fibonacci number 到四五十項。(那次發現,手算還是用線性時間的作法來計算比較簡單,只需要加法。對數時間的方法要用乘法,數字一大,手算很容易出錯)。
後來有正事要做,也荒廢了好一陣子。
時間推移,過著庸庸碌碌的生活,我逐漸發現,我已經失去當年自信滿滿,面對一個有好幾層 Σ 的複雜級數都敢硬展開化簡的勇氣。現在的我大概只會嚅囁著說「……這個怎麼可能做到啊……」然後夾著尾巴逃跑。數學如此,生活也是如此。
面對如此窩囊的中年,我想拾回勇氣。
生活也許沒那麼簡單,但是數學總可以吧。我最近又開始回頭玩 Project Euler 了。希望能夠慢慢找回勇於展開複雜公式、不怕錯誤嘗試的傻勁。
我真的是從這個網站學到很多,最近做到一題是雙重積分,直觀的做法會牽涉到 arctan 裡面有根號的複雜積分。那時我一想也是覺得「這怎麼可能積得出來!」。後來發現交換積分順序以後一切都變得很容易。直到進入「強者殿堂」後,才發現還真的有人硬是把那個 arctan 裡面帶根號的積分給積了出來。
“文章編號 1234!”
---yllan. 12/8, 2017