Skip to main content

Python + fibonacci

· One min read

網路上找到 Algorithms 一書,由於書上都是虛擬碼,試試看用 Python 來做點練習

下面是序章 Prologue 的例子:

目標: 用 Python 實現 fibonacci 數列 [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89 .....]

Python 程式碼:

def Fib1(n):
"""遞迴函式"""
if n==0:
return 0
elif n==1:
return 1
else:
return Fib1(n-1) + Fib1(n-2)

def Fib2(n):
"""用列表暫存結果"""
f = [0]*(n+1)
f[1] = 1
if n<2:
return f[n]
else:
for i in xrange(2,n+1):
f[i]=f[i-1]+f[i-2]
return f[n],f

if __name__=="__main__":
"""試算結果"""
import time
testtimes = 3

for i in xrange(testtimes):
begintime = time.clock()
print Fib1(30)
endtime = time.clock()
print endtime - begintime

for i in xrange(testtimes):
begintime = time.clock()
print Fib2(30)
endtime = time.clock()
print endtime - begintime

執行結果: 832040 4.24318425945 (Fib1) 832040 7.90603275007e-005 (Fib2)

探索 IPv6

· One min read

IBM 網站文章 探索 IPv6 講了最粗淺的 IP 格式與作業系統 / 瀏覽器支援

冰山

· 2 min read

*> * 把使用介面的畫面展示給非程式人員看時,如果這個介面很不好,對方會認為你整個程式也是很不好的。

  • 把使用介面的畫面展示給非程式人員看時,如果這個介面非常漂亮,對方會認為這個程式幾乎已經完工。
  • 比起功能齊全又累積了 3700 年資料但用灰色底色的網站,只有四個網頁但外觀漂亮的會獲到較高的評價。
  • 因為某些因素要求由各技術經理或客戶「啟動」專案時,可以拿些無關緊要的家家酒內容 (ex: 數種美術設計) 給他們玩 (選擇),讓他們覺得自己很重要。這些他們就不會嚴重影響你的時程了。
  • 展示時唯一重要的就是畫面。一定要讓它美得冒泡。* 結論:
  • 應該把未完成的使用介面畫得_像_未完成。在功能完成之前對應的工具欄圖示就只用草圖或暗影。如果是建立 web 服務,在功能完成之前就先不要放在首頁裡。這樣大家就會逐漸看到首頁由三個命令擴充到廿個命令。

-- 約爾談軟體 (揭露冰山般的秘密)

有空時翻一翻看過的舊文章,可以提醒自己很多事情:-)