java 板


LINE

※ 引述《AmosYang (LetMeGoogleThatForYou)》之銘言: : 解法三則是架構在 : F0 = 1 : F1 = 1 : F(2n-1) = F(n)^2 + F(n-1)^2 : F(2n) = (2 * F(n-1) + F(n)) * F(n) = (F(n-1) + F(n-1) + F(n)) * F(n) : 之上 第一次看到這公式 (以前線代沒認真學 囧) 檢查了一下你的公式, F0, F1 應該是這樣才對 F0 = 0 F1 = 1 : BigInteger.Add BigInteger.Multiply : 解法一 O(n) n=10000 0 : 解法二 O(log n) (4 log n / log 2) = 53 (8 log n / log 2) = 106 : 解法三 O(log n) 47 46 實作了一下解法三 (Top-Down),數字和你寫的一樣。 來說一下解法 2 的好處吧, 我是用 Bottom-Up 寫的 (1) 首先 T(1) = [ 0 1 ] // 放在 array[0] [ 1 1 ] 接下來一個迴圈算出 T(2) = T(1) * T(1) // * 代表矩陣乘法, 放 array[1] T(4) = T(2) * T(2) // 放 array[2] ... 上面這個動作只需要算一次 (2) 接下來要算 n=10000 時 就可以輕鬆搞定: Matrix result = [1, 1]; // [ f(0), f(1) ] for(int i=0;i<31;i++) if( ((n>>i) & 1) == 1 ) // 判斷第 i 位元是否為 1 result = array[i] * result; 一個 2x2 的矩陣乘法需要 8 個乘法與 4 個加法, 因為 2^13 <= 10000 < 2^14 所以我第一個迴圈就只算到 13 就好。 // 通常我會算到 31 然後因為 10000 的 bit-pattrns 有 4 個 1, 所以需要用到四次的 (2x2 矩陣 乘 2x1 矩陣), 這種情形乘法需用 4 次 ,加法 2 次。 結論, 乘法次數: 13*8 + 4*4 = 120 加法次數: 13*4 + 4*2 = 60 理論上,只算 n=10000 時,次數應該會更少, 我猜測可能就是你的估計值, 不過我現在的這種作法, 在 n 為其它值時, 只需要重複步驟二即可。 另一個好處就是 code 很短 矩陣相乘: 3 行 步驟(1): 2 行 步驟(2): 3 行 (上面省略了宣告) --- 再補充一下好了, 步驟 (1) 矩陣相乘時,被乘數和乘數都是同一個矩陣 其實只需要用到 7 次乘法。 --- 能不用大腦寫程式是件很開心的事情..XD --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.122.183.196 ※ 編輯: tkcn 來自: 140.122.183.196 (11/04 16:12) ※ 編輯: tkcn 來自: 61.217.194.110 (11/04 19:09)
1F:→ AmosYang:的確, F0 應該是 0 而非 1 XD 感謝指正 11/05 10:42







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:e-shopping站內搜尋

TOP