[理工] 算法 Master Theorem 的常数范围

楼主: JKLee (J.K.Lee)   2017-10-18 17:28:28
Master Theorem 假设
T(n) = a*T(n/b) + f(n)
其中a>=1,b>1
我自己在推导M.T.的过程中只用到 a>0,
但是我看到的资料都是假设 a >= 1,Why?
目前看到的理由是: a是代表子问题的个数,所以a为正整数。
有什么数学上的理由使得我们要假设 a >= 1 ?
作者: fatezero5262 (白羽音人)   2017-10-18 18:35:00
logb a 如果a小于一算出来就是负的 变成n^-xx,也就是n的倒数,只要n越大复杂度反而变低了不合理,不知道是不是因为这样
作者: kyuudonut (善良老百姓)   2017-10-18 22:50:00
a > 0 不就是跟 a >= 1 等价吗? 你质疑的点是?
作者: FRAXIS (喔喔)   2017-10-19 08:43:00
a 可以是实数 我想 a > 0 应该也是可以证明的毕竟 Akra–Bazzi method 没有这个限制
作者: awesomeXD   2017-10-20 20:33:00
递回树权重会越来越小,就没讨论的必要了吧?
作者: FRAXIS (喔喔)   2017-10-21 08:03:00
要看 b 的大小吧 所以要确认 regularity condition
作者: shownlin (哈哈阿喔)   2017-10-25 01:16:00
有哦...master theorem 有限制a是integer greater thanor equal to 1k大其实是正解
作者: windwaker112 (阿茄)   2017-10-30 13:20:00
a的个数是指子问题(subfunction)的个数,可以想像为一棵子树,应该没有非整数的个数吧,会有非整数的东西应该是data个数而不是subfunction的个数详细概念看一下算法枫叶本对MT的证明就会清楚了

Links booklink

Contact Us: admin [ a t ] ucptt.com