离散数学及其应用学习笔记——主定理(Master Theorem)的证明
先贴出两个初中数学公式
使用换根公式和对数倒数性质可以得出这样的结论:
a^{log_bn}=n^{log_ba}
等比数列求和公式:
S_n=\frac{a_nq-a_1}{q-1}
这个关于f(n)的公式可以估计满足分治关系的函数的阶:如果f(n)=af(nb)+g(n)f(n)=af(\frac{n}{b})+g(n)那么有:
f(n)=a^kf(1)+\sum_{j=0}^{k-1}a^jg(\frac{n}{b^j})
主定理(MasterTheorem):
设ff是满足递推关系:
f(n)=af(nb)+cndf(n)=af(\frac{n}{b})+cn^d
的增函数,其中n=bkn=b^k,kk是一个正整数,a≥1a\geq1,bb是大于1的正整数,cc和dd是实数,满足cc是正的且bb是非负的。那么f(n)f(n)是
O(nd)O(n^d) a<bda
O(ndlogn)O(n^dlogn) a=bda=b^d
O(nlogba)O(n^{log_ba}) a>bda>b^d
怎么证明呢?可以分为三种情况来证明:
- a<bda
- a=bda=b^d
- a>bda>b^d
首先可以将f(n)=akf(1)+∑k−1j=0ajg(nbj)f(n)=a^kf(1)+\sum_{j=0}^{k-1}a^jg(\frac{n}{b^j}) ,代入主定理递推关系,因为g(n)=cndg(n)=cn^d,可以得到
f(n)=a^kf(1)+c\sum_{j=0}^{k-1}a^j(\frac{n}{b^j})^d\\ =a^kf(1)+c\sum_{j=0}^{k-1}a^j(\frac{n}{b^j})^d
由于n=bkn=b^k,所以k=logbnk=log_bn
优先考虑a=bda=b^d的情况:
f(n)=a^kf(1)+c\sum_{j=0}^{k-1}a^j(\frac{n}{b^j})^d\\ =a^kf(1)+c\sum_{j=0}^{k-1}a^j(\frac{n}{b^j})^d\\ =({b^d})^{log_bn}f(1)+cn^d\sum_{j=0}^{k-1}({b^d})^jb^{-jd}\\ =n^df(1)+cn^dk\\ =n^df(1)+cn^dlog_bn\\
所以 a=bda=b^d时, f(n)f(n)是 O(ndlogn)O(n^dlogn)
然后是a≠bd a\neq b^d的情况,使用等比数列求和公式可以做出如下推导:
f(n)=a^kf(1)+c\sum_{j=0}^{k-1}a^j(\frac{n}{b^j})^d\\ =a^kf(1)+c\sum_{j=0}^{k-1}a^j(\frac{n}{b^j})^d\\ =a^kf(1)+cn^d\sum_{j=0}^{k-1}(\frac{a}{b^d})^j\\ =a^kf(1)+\frac{((\frac{a}{b^d})^k-1)cn^db^d}{a-b^d}\\ =a^kf(1)+\frac{(\frac{a}{b^d})^{log_bn}cb^dn^d}{a-b^d}+\frac{n^db^dc}{b^d-a}\\ =n^{log_ba}f(1)+\frac{(\frac{a}{b^d})^{log_bn}cb^dn^d}{a-b^d}+\frac{n^db^dc}{b^d-a}\\ =n^{log_ba}f(1)+\frac{{n^{log_b{\frac{a}{b^d}}}}cb^dn^d}{a-b^d}+\frac{n^db^dc}{b^d-a}\\ =n^{log_ba}f(1)+\frac{{n^{log_ba}}n^{-d}cb^dn^d}{a-b^d}+\frac{n^db^dc}{b^d-a}\\ =n^{log_ba}f(1)+\frac{{n^{log_ba}}cb^d}{a-b^d}+\frac{n^db^dc}{b^d-a}\\ =n^{log_ba}f(1)+\frac{{n^{log_ba}}n^{-d}cb^dn^d}{a-b^d}+\frac{n^db^dc}{b^d-a}\\ =C_1n^d+C_2n^{log_ba}
这里C1=bdcbd−aC_1=\frac{b^dc}{b^d-a}, C2=f(1)+bdca−bdC_2=f(1)+\frac{b^dc}{a-b^d}
我们还可以推导出结论:
当a<bda
log_ba
当a>bda > b^d
log_ba>log_b{b^d}=d
同时使用已经得出的结论f(n)=C1nd+C2nlogbaf(n)=C_1n^d+C_2n^{log_ba},可以完成证明
O(nd)O(n^d) a<bda
O(nlogba)O(n^{log_ba}) a>bda>b^d
至此,主定理的证明全部完成。
离散数学及其应用学习笔记——主定理(Master Theorem)的证明相关推荐
- 主定理(Master Theorem) 及其应用
主定理"Master Theorem" 一.主定理(Master Theorem) 二.应用举例 在分析算法的时候,我们经常需要分析递归算法的时间复杂度. 一.主定理(Master ...
- 主定理(master theorem)学习小记
前言 这是分析复杂度的一个玩意儿,东西不多,原本只要死记一下就好了,但是考虑到我不太好的记忆力,所以还是解析一遍比较好 正文 主定理是用来分析T(n)=aT(nb)+f(n)T(n)=aT(\frac ...
- 主定理 Master Theorem
分治法主定理 主定理的证明 假设有递归式: T(n)=aT(nb)+f(n)T(n) = aT(\frac{n}{b}) + f(n)T(n)=aT(bn)+f(n) 证明: T(n)=aT(n/b ...
- 主定理(Master Theorem)
主定理是分析分治算法时间复杂度很重要的一个定理. 我们之前对于一个递归类的代码进行时间复杂度分析,一般会采用递归树的方式,下面我们先介绍一下递归树的方式,理解之后,再引入主定理的相关内容. 分治的介绍 ...
- 泰斗破环神学习笔记——主界面开发
泰斗破环神学习笔记--主界面开发 主界面主要就是,角色状态面板.角色信息面板.金币与钻石数额面板 文章目录 泰斗破环神学习笔记--主界面开发 前言 一.委托(delegate) 二.事件(Event) ...
- MySQL学习笔记-主键索引和二级索引
文章目录 MySQL学习笔记-主键索引和二级索引 1.笔记图 2.索引的常见模型 3.InnoDB 的索引模型 4.主键索引和普通索引查询的区别 5.如何选择主键字段 6.笔记图 7.回表过程 8.最 ...
- 【Bandit Algorithms学习笔记】UCB算法的理论证明
文章目录 前言 算法优势 算法原理 UCB公式 UCB算法流程 相关定理及证明 定理7.1 证明 定理7.2 证明 总结 参考资料 前言 笔者毕设研究的是Bandit问题,因此最近在学习相关的内容,想 ...
- 『Discrete Mathematics and Its Applications』离散数学及其应用学习笔记
教材是Discrete Mathematics and Its Applications 7th,做了一些简单的翻译和简单的笔记. 1. The Foundations: Logic and Proo ...
- 《MySQL实战45讲》实践篇 24-29 学习笔记 (主备篇)
图片来自于极客时间,如有版权问题,请联系我删除. 24 | MySQL是怎么保证主备一致的? 主备切换流程如下: 建议把节点 B(也就是备库)设置成只读(readonly)模式. 1.有时候一些运营类 ...
最新文章
- 【转】通过Hibernate将数据 存入oracle数据库例子
- “夸夸机器人”App来了:变身百万粉丝大V,48万人给你的帖子点赞
- 斯人若彩虹,遇上方知有
- Ellipse(椭圆)
- Yum在线升级之网络(本地)服务器的搭建!
- java常见面试题及答案 11-20(JVM篇)
- 一起学nRF51xx 10 - rng
- 【杂谈】为了让大家学好深度学习模型设计和优化,有三AI都做了什么
- SoftPool算法详解
- nginx 并发过十万
- Win7电脑创建本地连接网络的操作方法
- appium+python自动化57-chromedriver与chrome版本
- jQuery 1.3 正式版发布
- 作用域经典练习题(主要是这个图太大不能一起分享)
- android奔溃日志手机查看
- 董监高股票减持25%规定?
- Shell学习:关于替换命令-tr-ROT13法则
- 基于离线策略的强化学习(PPO)
- 判断输入框是不是数字_【Excel技巧】老板说,“我只要数字!数字!”
- 机器学习sklearn之支持向量回归(SVR)
热门文章
- 超实用web前端开发工具推荐(web开发+前端性能优化+浏览器兼容性测试+……)
- YOLOv5的损失函数
- 信号频率(Frequency),幅值(Amplitude),周期(Period),相位(Phase)所代表的含义与关系
- arcgis 线转面
- InVEST模型 | HAbitat quality模块计算生境质量
- 无线网卡抓包小记--我的无线网卡终于能抓包了
- 如何找到msdn中文文档呢?
- 使用matlab处理INCF采集数据,mdf(.dat)格式文件,并将将其写入excel文件
- 怎样在公司内部搭建一个进行资料共享、支持全文检索的网站?
- MATLAB 矩阵数据可视化imagesc 以及 如何多图共用一个 colorbar