POJ 1953 WorldCupNoise(轉. 寒笑 )

斐波拉契數列。

簡單說明:輸入1時,結果有兩種:0,1;輸入2時,結果有00,01,10,輸入三時,結果有000,001,010,100,101……無論輸入幾,總結過數都是最後一位爲0的數字個數加上最後一位爲1的數字個數,而當前一位要產生1,前一位最後只能是0,當前一位要產生0,前一位最後可以爲1,也可以爲0。

設O[i]、Z[i]分別表示i位數的最後一位爲0的數和最後一位爲1的數,f[i]表示i位數的總數,則f[i] = O[i] + Z[i]。又由以上分析,O[k] = Z[k-1] = O[k-2] + Z[k-2] = f[k-2], Z[k] = O[k-1] + Z[k-1] = f[k-1], So f[k] = O[k] + Z[k] = f[k-1] + f[k-2]。這不就是斐波拉契數列嗎?f[1] = 2, f[2] = 3, f[k] = f[k-1] + f[k-2]。


這是我看到別人的, 他的博客鏈接 http://my.oschina.net/stormdpzh/blog/48670 

我覺得他解析的不錯, 看懂了他的解析, 雖然網上大把用這種解法的, 但是我暫時只找到解析 f[k] = f[k-1] + f[k-2] 是怎麼來的。 

在此非常感謝。 

發佈了25 篇原創文章 · 獲贊 3 · 訪問量 23萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章