記得多年前筆者參加求職面試時,被問及要用四個不同編程的方法來計算費氏數列(Fibonacci Series),不知這問題難到多少人。當時我的回答是,用方程式、用預設答案(因為費氏數列中的數字其實不多,可以預先計算好放在程式中)、用遞迴(Recursion)和用非遞迴(Non-recursion)的模式編程,我回答完之後,負責面試的並沒有追問下去,假如我是負責面試的,我會再追問究竟這四個不同的方法,各自有什麼利弊,適合在那個時候用呢?

 

就這四個不同的編程方法來說,用方程式求任何一個費氏數列所用的時間相同,但是因為方程式涉及開平方運算,所以可能有誤差(Rounding)問題。在程式中預設整個費氐數列,例如放入陣列(Array)之內,那麼取那一個費氏數列的數字都用相同的時間,但弊處在於不論使用的次數多少,整個費氐數列都要放在記憶體內。用遞迴的編程方式是最容易寫、最顯淺的,但問題是運作效率不高,用非遞迴的編程方式是較有效率,但程式碼是較難理解的。如果程式員能想出不同的編程方法,以及它們的利弊,便可以因應需要而選擇最適合的方法了。

筆者相信大部分程式員只可以想到一個或兩個編程方法,而筆者之所以可以想到四個方法,費氐數列的方程式是在高中時的純數科學的,而其他三個編程方法是多年編程經驗領悟出來的。另外,網上有大量討論區讓程式員分享經驗,也是程式員「深造」的地方。

在我們的人生當中,也會遇到不同的問題,有些人可以想出多個解決方法,有些人可能只可以想到一個解決方法,甚至有些人是想不出任何解決方法的。如果我們能想得出愈多不同的解決方法,便可以比較不同的解決方法的利弊,從中找出最適合的解決方法。人生的問題,也許大部分人所面對的都差不多,所以在問題出現之前,我們可以向前輩學習他們的經驗,又或多看書,學習由作者的角度去思考問題。

無論如何,當我們面對一個問題時,先要冷靜下來,可以先想想自己有什麼解決方法,跟著再提醒自己也許會有其他解決的方法,可向別人請教,上網或看書去看看有否其他人也遇過差不多的問題。當我們得知不同的解決方法時,可以從中選擇最適合自己的方法。最重要是,不要放棄、不要灰心、不要衝動。

[ 您可能對以下有興趣 ]

網台節目
[數碼APPS] 展望2014年的數碼世界發展
[自作業] 物流不「流」
[All Day Breakfast] 遊戲治療
[九廣揭露] 訪問香港前華籍英軍 (Hong Kong Military Service Corps)
[九廣揭露] 香港電視的神奇「魔」力 - 專訪香港電視編劇莊婉萍
[企業軟實力] Facilitation讓會議及策略規劃變得精彩
[南亞裔在香港] 印度裔的巴芷盈、巴太
[數碼APPS] 中小企業網絡安全防護
[數碼APPS] 數碼分析專家 Kenneth Kwok 帶領大家漫遊大數據年代
[數碼APPS] 終極論壇 - 緣聚於此
[自作業] Made in 馬灣的美味
[自作業] Silversmith純銀DIY
[自作業] 一個手作人的故事
[自作業] 做健身,唔一定要去gym 房既!屋企都做得架!
[自作業] 全城熱點-Hello Kitty有機農莊
[香江巨輪] 全城街馬 傳承街馬 - 張亮專訪
專欄文章
[「點指」教仔咁簡單] 先了解、後選校
[偵情探案] 手機間諜Apps
[感作感為] 從微電影看資訊傳遞的發展
[糖書] 創動力是偽NGO
[電腦告訴我的事] 亡命超頻
[電腦告訴我的事] 何謂安全
[電腦告訴我的事] 先緩輕重
[電腦告訴我的事] 夢想現實
[電腦告訴我的事] 容錯人生
[電腦告訴我的事] 慾望無限
[電腦告訴我的事] 有始有終
[電腦告訴我的事] 物件導向
[電腦告訴我的事] 留有餘地
[電腦告訴我的事] 異常人生
[電腦告訴我的事] 電腦萬能
[電腦告訴我的事]決策時刻
[Happy Hippes] Meditation。
[Happy Hippes] 別讓恐懼阻礙你
[半百人生] Hello Kitty不是貓
[圖文共賞] Pizza Guy in the Oscars 2014
[圖文共賞] 互聯網上六成是鬼?
[圖文共賞] 十二段「一鏡到底」的電影情節
[擁有自己的私人影院] 制式、制式、又是制式
[正能量※讀書會] 365個快速成功法 Napoleon Hill's Positive Action Plan
[正能量※讀書會] 最後14堂星期二的課
[正能量※讀書會] 零極限 Zero Limits
[糖書]感恩。感激。感動
[糖書]自動波
[長者安居協會] 學新科技升「呢」,你準備好未?
[長者安居協會] 誰家沒智能(中)
[電腦告訴我的事] 人生死鎖
[電腦告訴我的事] 誰是領䄂
[電腦告訴我的事] 適者生存
[香港萬歲] 混漲
影像節目
[社聯頻道] 善用資訊科技 提升戒毒動機
[社聯頻道] 商管生服務社福機構 跨界培育學子社責心
[社聯頻道] 引入VR虛擬實境技術 復康訓練更見成效
此文章之主持/專欄作家介紹:Herbert
資訊科技界資深工作者,學生時代受蘋果二代所啟蒙,沉迷電腦科技,尤其是軟件編程,大學時代主修計算機科學,最後以獲得哲學博士作完美終結。從事資訊科技行業超過二十年,對資訊科技界充滿憧憬和好奇,至今仍在追趕各項電腦新知,盼望能以資訊科技知識,令這個世界更美好。

版權所有©2013 創動力媒體 Dynamix