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灯, 水草

请输入看板名称,例如:WOW站内搜寻

TOP