离散数学及其应用学习笔记——主定理(Master Theorem)的证明

先贴出两个初中数学公式
使用换根公式和对数倒数性质可以得出这样的结论:

alogbn=nlogba

等比数列求和公式:

Sn=anqa1q1

这个关于f(n)的公式可以估计满足分治关系的函数的阶:如果f(n)=af(nb)+g(n)那么有:

f(n)=akf(1)+j=0k1ajg(nbj)

主定理(MasterTheorem):

f是满足递推关系:

f(n)=af(nb)+cnd

的增函数,其中n=bk,k是一个正整数,a1,b是大于1的正整数,cd是实数,满足c是正的且b是非负的。那么f(n)

  1. O(nd) a<bd

  2. O(ndlogn) a=bd

  3. O(nlogba) a>bd

怎么证明呢?可以分为三种情况来证明:

  1. a<bd
  2. a=bd
  3. a>bd

首先可以将f(n)=akf(1)+k1j=0ajg(nbj),代入主定理递推关系,因为g(n)=cnd,可以得到

f(n)=akf(1)+cj=0k1aj(nbj)d=akf(1)+cj=0k1aj(nbj)d

由于n=bk,所以k=logbn

优先考虑a=bd的情况:

f(n)=akf(1)+cj=0k1aj(nbj)d=akf(1)+cj=0k1aj(nbj)d=(bd)logbnf(1)+cndj=0k1(bd)jbjd=ndf(1)+cndk=ndf(1)+cndlogbn

所以a=bd时,f(n)O(ndlogn)

然后是abd的情况,使用等比数列求和公式可以做出如下推导:

f(n)=akf(1)+cj=0k1aj(nbj)d=akf(1)+cj=0k1aj(nbj)d=akf(1)+cndj=0k1(abd)j=akf(1)+((abd)k1)cndbdabd=akf(1)+(abd)logbncbdndabd+ndbdcbda=nlogbaf(1)+(abd)logbncbdndabd+ndbdcbda=nlogbaf(1)+nlogbabdcbdndabd+ndbdcbda=nlogbaf(1)+nlogbandcbdndabd+ndbdcbda=nlogbaf(1)+nlogbacbdabd+ndbdcbda=nlogbaf(1)+nlogbandcbdndabd+ndbdcbda=C1nd+C2nlogba

这里C1=bdcbdaC2=f(1)+bdcabd

我们还可以推导出结论:

a<bd

logba<logbbd=d

a>bd

logba>logbbd=d

同时使用已经得出的结论f(n)=C1nd+C2nlogba,可以完成证明

  1. O(nd) a<bd

  2. O(nlogba) a>bd

至此,主定理的证明全部完成。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值