Excel_尤拉計劃 Project Euler_第18題 Maximum path sum I

【前言】

無庸置疑,我最崇拜的偶像之一就是尤拉(Euler,臺灣通常譯作歐拉,但我喜歡沿用我小時候的習慣,稱他為尤拉)

而我擅自猜測:【尤拉計劃(Project Euler)】大概就是一群和我一樣崇敬尤拉的人所發起的計劃吧。

Euler Project裡面有數百道數學題,很多都是「很數學」的題目:意即不是生活應用題,解開謎底對人生可能也沒什麼幫助。純粹就是享受動腦的樂趣用的。

而且這些數學題都不必用紙筆算,而是用電腦算、通常是需要寫程式來計算。我非常喜歡這個概念,這是何等迷人的設計啊!完全擺脫了中學考試繁瑣的計算過程,讓人可以專注在解題的技巧上。

Euler Project的題目都有設計過,不需要高深的程式語言功力,也不需要深厚的數學功力,就可以享受解題的樂趣。不過你必需具備一點創意與想像力!在Euler Project不論你的解題過程如何,他只認定你答對或答錯,所以你可以盡己所能地用各種方式找出答案,不管是土法煉鋼、還是獨具巧思,只要能答對,都行!

為了保持解題的樂趣,Project Euler希望解題者不要在Project Euler論壇以外PO出解題方法。但是網路上仍然有很多人po出解答。我都會小心翼翼地避開,深怕一不小心就壞了我的思考樂趣。所以我在這邊也不會po出解答,僅抒發我思考偶得的樂趣。

 

【Project Euler No.18】

Find the maximum total from top to bottom of the triangle below:

Maximum Path Sum I

我之所以會使用【Excel】的分類來po這題,正是因為我覺得Excel比一般程式語言更適合用來觀察這一題。

  1. Excel一格一格的儲存格介面,正好為這個堆砌起來的三角型提供了一個思考的現成框架。比起抽象的程式語言來得更平易近人
  2. 不需要寫任何程式、甚至不需要用到複雜公式。就能輕鬆解決這個問題

以下不解釋解題方法,但我可以講解一下如何快速打造出適合思考的介面。

Step 1

把題目的數字複製貼上到Excel的A1至A15,此時的格式全部擠在一起,還未成為平穩漂亮的三角形。

Step 2

按下Ctrl+H,將空格取代成兩個斜線「//

Step 3

在A21輸入公式:=REPT(“/”,35-ROW())&A1

並向下複製至A35

Step 4

複製,原地選擇性貼上為

Step 5

對A21至A35進行資料剖析,選擇以「/」作為分隔符號。並按下完成

 

Step 6

完成。如果覺得不太漂亮,可以稍微調整一下儲存格欄寬。