- 1、本文档共9页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
倍增思想的研究
倍增思想的研究
安徽省芜湖市第一中学 朱晨光
前言
倍增思想是信息学中一种非常重要的思想,近几年中越来越受到人们的重视,应用也日趋广泛。倍增思想的本质并不复杂,但是要想在特定的题目中恰当地运用好倍增思想却并不容易。因此,本文将从两个方面的运用来探讨倍增思想,并在其中总结倍增思想的实质与理论基础。
关键字
倍增思想
正文
倍增思想是一种十分巧妙的思想。“倍增”二字体现在它每次将当前的已知结果或考察范围扩大一倍。正是由于这个原因,它的时间复杂度降低了很多,一般是将一个系数N变为log2N。举一个简单的例子,如果我们想把1变成16,可以每次加1,这样需要操作15次;还可以每次将当前的数乘以2,这样只需要操作4次。这还只是针对16这个比较小的数。如果是32768(215),1048576(220),2147483648(231),……,那么节省的操作次数就非常多了。因此,在这里,我们先对倍增思想有一个感性的认识——即每次通过“翻番”来减少操作次数。
倍增思想的运用是十分广泛的。一般来说,有如下两种情况:
一、 将一个状态经过若干次变化得到另一个状态,而每次变化的规则都是相同的。这时,可以借助倍增思想,每次将考察的两个状态之间的距离增大一倍,从而减小时间复杂度;
二、 每次需要对一段区间进行某种操作(一般是统计操作)。这时可以利用倍增思想,在预处理中得到这段区间中的每一点向后长度为20,21,22,……(包括自己)的子区间的某种性质,以便在处理中O(1)或O((log2N)x)地取用。
下面,将就上面每种情况进行分析,并举出例题具体说明。
情况一 变化规则相同的情况下用倍增思想加速状态转移
首先举一个小例子:在求320时,可以用3*3*3*……*3实现,共要做19次乘法。还可以将320分解为316*34,并且可以由3经一次乘法得到32,32经一次乘法得到34,34经一次乘法得到38,38经一次乘法得到316。因此,只需要4次乘法就可以得到所需要的316与34,再进行一次乘法就得到了320,总共只需要5次乘法。
那么,在这里倍增思想究竟是如何减少了运算次数呢?让我们先将这种方法做一个归纳:
在求时,如果a的乘法运算满足结合率,那么就可以任意地决定这(n-1)次乘法操作的顺序。而倍增思想是这样做的:
第一步:将n表示成为2b1+2b2+……+2bw.其中,b1b2……bw=0.很明显,这一步操作可以通过将n表示成为一个二进制数实现,若第x位为1,则x必等于某个bi.为了后面处理方便,这里建立一个集合B={b1,b2,……,bw}.
第二步:根据幂运算的有关规则,==**……*.这为第三步指明了方向:即高效地求出,,……,。
第三步:由于已知a,即,因此可以每次将当前结果进行平方,即由得到*,即.另设一个result,初值为1。如果当前结果为且iB, 则令result←result*.这样,在取遍了B集合中每一个值后,result便为最终结果.
那么,这样的操作需要进行多少次呢?根据二进制数的性质,十进制数n的二进制表示一定不超过位。也就是说,其中最多有个1且最高位是第位. 因此,最多进行次平方操作就可以得到所有需要的值。而对于每个还要与result进行一次乘法操作,所以总的乘法操作次数最多为2,是O(log2n)级别的。其中省去的乘法操作很好理解:举一个例子,在从得到的过程中,按照原始的方法需要进行2i次乘法操作,而现在只需要利用已知结果进行一次乘法操作即可。大大减少了操作次数,从而降低了时间复杂度。
实际运用中,这个a并不仅仅可以表示一个实数,还可以是一个矩阵或是一个抽象意义上的状态。从这个归纳中,可以看出,倍增思想在这种情况下的运用具有如下性质:
求从一个状态经过n次相同规则的变化得到的另一个状态;
这种规则下的变化具有结合率。
在这种情况下,只需要将n表示成为一些互不相等的2的幂的和,然后利用幂运算的有关性质,将求转化为求一些a的2的乘方的幂的乘积。而从a即开始,每次进行平方操作,即可在O(log2n)时间内得到问题的解。
下面举一些例题进行说明:
有一个N*N的矩阵A,求矩阵AK(即K个A连乘后的结果),其中每一个数都为对10000取模后的值。注意:矩阵乘法具有结合率。
分析:
经过对上面那个小例子的深入探究,这题就变得十分简单了。只要将例子中实数a变为矩阵A即可。时间复杂度为O(N3*log2K),空间复杂度为O(N2).
骰子的运动
给定一个六个面的骰子,每个面上都有一定的权值(1到50之间的整数)。骰子运动的范围是一个宽度为4,向左右无限延伸的带子。带子从左到右的横坐标值为……,-3,-2,-1,0,1,2,3,……,从前到后的纵坐标值依次为1,2,3,4(这里的坐标对应的都是格子,而不是点)。这样,带子被分成了无限多个格
您可能关注的文档
- 保护消费者权益知识竞赛试_题及参考答案.doc
- 保护生物学20052006学年考试试题A答案.doc
- 保险代理人考试中第四章.doc
- 保险公司售后服务存在的问题006.doc
- 俞可平中国公民社会成长的制度空间和发展方向.doc
- 俞敏洪曾两次高考落榜英语仅考33分.doc
- 信仰的缺失与再造(精编).doc
- 信息04级运筹学试卷(B)答案.doc
- 信息光学实验讲义二.doc
- 信息技术《图像数字化2》学案.doc
- 2024-2025学年度怀化职业技术学院《形势与政策》期末考试检测卷及答案详解(典优).docx
- DB42T 1122-2015 绿色食品 杏鲍菇生产技术规程.docx
- DB42T 1073-2015 地理标志产品 神农百花蜜.docx
- DB42T 1024-2014 牛支原体肺炎诊断技术规程.docx
- DB42T 473-2021 早熟桃生产技术规程.docx
- DB42T 353-2011 地理标志产品 九资河茯苓.docx
- DB42T 350-2011 地理标志产品 来凤漆筷.docx
- DB42T 349.8-2015 武汉市主要行业取(用)水定额 第8部分:饮料制造.docx
- DB42T 1081-2015 湖北省土地整治工程量清单计价规范.docx
- DB42T 1010-2014 地理标志产品 老君眉茶.docx
最近下载
- 《个人信息保护法》知识考试题库资料150题(含答案).pdf VIP
- 2025年湖北省工业建筑集团有限公司人员招聘笔试备考试题及答案解析.docx VIP
- 人工智能美术课件PPT必威体育精装版完整版本.pptx VIP
- 2023年7月黑龙江高中学业水平合格性考试历史试卷真题(含答案详解).pdf VIP
- 《益生菌与健康》课件.ppt VIP
- 微信视频号运营服务协议合同0001.docx VIP
- 食用农产品承诺达标合格证开具指南.docx VIP
- 自动控制技术课程设计报告.doc VIP
- 中考化学总复习方案及备考策略(初稿).ppt
- 十年(2015-2024)高考真题英语分项汇编(全国)专题 12 阅读理解应用文(教师卷).docx VIP
文档评论(0)