日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

《编程之美》读书笔记08:2.9 Fibonacci序列

發布時間:2025/7/14 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 《编程之美》读书笔记08:2.9 Fibonacci序列 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

《編程之美》讀書筆記08:2.9 Fibonacci序列

計算Fibonacci序列最直接的方法就是利用遞推公式 F(n+2)=F(n+1)+F(n)。而用通項公式來求解是錯誤的,用浮點數表示無理數本來就有誤差,經過n次方后,當n相當大時,誤差能足夠大到影響浮點數轉為整數時的精度,得到的結果根本不準。

用矩陣來計算,雖然時間復雜度降到O(log n),但要用到矩陣類,相當麻煩。觀察:

F(n+2)=F(n)+F(n-1)=2*F(n-1)+F(n-2)=3*F(n-2)+2*F(n-4)

用歸納法很容易證明 F(n) = F(k)*F(n+1-k) + F(k-1)*F(n-k),利用該遞推公式和原遞推公式,要計算F(n),只要計算F([n/2])和F([n/2]+1),時間復雜度為 O(lg n)。如:要計算F(58),由 58 -> 29,30 -> 14,15 -> 7,8 -> 3,4 -> 1,2 可知只要算5次。可以用一個棧保存要計算的數,實際上,將n的最高位1(假設在第k位)左邊的0去除掉后,第m次要計算的數是第k位到第k-m+1位這m個位組成的值t(m),則第m-1次要計算的數為t(m-1),且

t(m)=2*t(m-1)+(第k-m+1位是否為1)。

若第m-1次計算得到了f(k)和f(k+1),則第m次計算:

?

第k-m+1位

已計算

待計算

1

f(k)

f(k+1)

f(2*k+1),f(2*k+2)

0

f(2*k),f(2*k+1)

?

具體公式見下面代碼。

下面是計算F(n)最后四位數(某道ACM題)的代碼。


?

/*???Fibonacci數列第N個數的最后4位數
????注意,當?N>93?時?第N個數的值超過64位無符號整數可表示的范圍。
F(n+2)=F(n)+F(n-1)?F(0)=0?F(1)=1??F(2)=1????????==>
F(n)=F(k)*F(n+1-k)?+?F(k-1)*F(n-k)??????????????==>
F(2*n)=F(n+1)*F(n)+F(n)*F(n-1)=(F(n+1)+F(n-1))*F(n)=(F(n+1)*2-F(n))*F(n)
F(2*n+1)=F(n+1)*F(n+1)+F(n)*F(n)
F(2*n+2)=F(n+2)*F(n+1)+F(n+1)*F(n)=(F(n+2)+F(n))*F(n+1)=(F(n+1)+F(n)*2)*F(n+1)
?
*/

unsigned?fib_last4(?unsigned?num)
{
??
if?(?num?==?0?)?return?0;
??
const?unsigned?M=10000;
??unsigned?ret
=1,next=1,ret_=ret;
??unsigned?flag
=1,?tt=num;
??
while?(?tt?>>=?1)?flag?<<=?1;
??
while?(?flag?>>=?1?){
????
if?(?num?&?flag?){
??????ret_?
=?ret?*?ret?+?next?*?next;
??????next?
=?(ret?+?ret?+?next)?*?next;
????}?
else?{
??????
//多加一個M,避免?2*next-ret是負數,造成結果不對
??????ret_?=?(next?+?next?+?M?-?ret)?*?ret;
??????next?
=?ret?*?ret?+?next?*?next;
????}
????ret?
=?ret_?%?M;
????next?
=?next?%?M;
??}
??
return?ret;
}

轉載于:https://www.cnblogs.com/flyinghearts/archive/2011/03/22/1991983.html

總結

以上是生活随笔為你收集整理的《编程之美》读书笔记08:2.9 Fibonacci序列的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产精品色悠悠 | 99热麻豆| 色桃网| 色噜噜日韩精品欧美一区二区 | 中文字幕视频在线 | av大片在线看 | 呦呦av| 久久草视频在线 | 亚洲精品h| 国产又黄又硬又粗 | 精品99999| 日韩新片王网 | 国产日韩av在线播放 | 免费看黄色aaaaaa 片 | 男生坤坤放进女生坤坤里 | 成人夜晚看av | 500部大龄熟乱视频 亚洲乱码精品 | 亚洲成人黄色片 | 欧美视频一区二区三区四区在线观看 | 日本亚洲在线 | 亚洲综合涩 | 日韩二区三区四区 | 国产黄色片在线免费观看 | 牛牛电影国产一区二区 | 调教丰满的已婚少妇在线观看 | av自拍网 | 一区二视频 | 中文字幕人妻一区二 | 四虎影视免费观看 | 中文字幕爱爱 | 久久久久久久久黄色 | 青青操原 | 豆国产97在线 | 亚洲 | 2019亚洲男人天堂 | 日噜噜夜噜噜 | 久久福利影院 | 天天做天天爽 | 97欧美| 波多野结衣一区二区三区中文字幕 | 国产日韩欧美精品在线观看 | 蜜臀久久99精品久久久无需会员 | 久久久久久久久久福利 | 精品一区二区三区在线视频 | 国产女人高潮时对白 | japanese国产 | 91精品视频网站 | 亚洲精品一级 | 国产无码久久精品 | 国内外成人免费视频 | 九九热免费精品视频 | 中文字幕88 | 四虎成人免费视频 | 日韩精品在线视频免费观看 | 欧美一级大黄 | 中文字幕在线视频一区二区 | 色婷婷九月 | 亚洲精品无码久久久 | 精品人妻少妇一区二区 | 在线永久看片免费的视频 | av电影在线网站 | 欧美午夜理伦三级在线观看 | 五月婷婷亚洲 | 欧美在线观看免费高清 | 久久精品爱| 在线观看色网站 | 日日碰狠狠躁久久躁蜜桃 | www.97视频| 欧美视频在线免费看 | 久久久久久夜 | 一区二区日韩国产 | 午夜激情电影在线观看 | 国产伦精品一区二区三区88av | 欧美性大战xxxxx久久久 | 一级黄色片国产 | 在线观看国产成人 | 实拍女处破www免费看 | 黄色在线播放网站 | 久久久久久国产精品免费播放 | 少妇精品久久久久www | 韩国在线不卡 | 精品一区二区三区不卡 | 美女一区二区三区 | 人妻少妇偷人精品久久久任期 | 亚洲一级淫片 | 91尤物视频 | 6080午夜伦理 | 在线国产精品一区 | 瑟瑟视频在线看 | 久久国产高清 | 青青青国产 | 艳妇臀荡乳欲伦交换电影 | 日韩一级影片 | 日韩性网站 | 欧美老熟妇xb水多毛多 | 成人免费视频一区二区三区 | 国产欧美激情视频 | 精品综合久久 | 中文字幕在线导航 | 日韩福利小视频 |