算法合集之《浅谈“黄金分割”和信息学的联系》

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

本资料由-大学生创业|创业|创业网提供资料在线代理|网页代理|代理网页|减肥药排行榜|淘宝最好的减肥药|什么减肥药效果最好|减肥瘦身药|美,无处不在——浅谈“黄金分割”和信息学的联系安徽芜湖一中杨思雨摘要本文主要介绍了“黄金分割”与信息学竞赛的联系及其在一些信息学问题中的应用,全文可以分为四个部分。第一部分引言,主要介绍了“黄金分割”的由来及其和各领域的联系,进而提出探索黄金分割与信息学竞赛的联系。第二部分中逐渐深入的分析了一个例题,最终揭示了问题本质上与黄金分割数的联系,说明了黄金分割数在一些数学性较强的题目中有着广泛的应用。第三部分通过分析另一个例题,介绍了一种优选法——“黄金分割法”。第四部分指出黄金分割与信息学竞赛联系密切,总结全文。关键字黄金分割信息学联系目录引言......................................................................................2例题一..................................................................................2例题二..................................................................................5总结......................................................................................7参考文献..............................................................................8附录......................................................................................8程序描述............................................................................10本资料由-大学生创业|创业|创业网提供资料在线代理|网页代理|代理网页|减肥药排行榜|淘宝最好的减肥药|什么减肥药效果最好|减肥瘦身药|引言早在古希腊时期,人们就发现了“黄金分割”。两千多年前,数学家欧多克斯提出了这样的问题:如图1,线段AB上有一点P,将线段AB分割为两段——AP和PB,若它们长度之比恰好等于整条线段AB与较长一段AP的长度之比,那么P点应该在线段AB什么位置呢?图1我们不妨假设线段AP的长度为1,设线段PB的长度为x,那么线段AB的总长度就是1+x。由APABPBAP,得到方程111xx。解出215x,记为φ,它的近似值为0.618。而相应的,线段AB的长度就是2151x,记为Φ。在这之后,人们围绕这个比值开展了许多研究,意大利著名的艺术家、科学家达·芬奇还把ф命名为“黄金分割数(GoldenSectionNumber)”。有趣的是,人们发现黄金分割在自然界和其它各个领域中到处可见。例如,人的肚脐是人体总长的黄金分割点,人的膝盖又是肚脐到脚跟的黄金分割点;在有些植物的茎上,相邻叶柄之间的夹角是137º28′,这恰好是把圆周分为1:0.618的两条半径的夹角。此外,黄金分割也被看作是美的化身,人们认为符合黄金分割比例的事物都非常协调,富有美感。这就使得它在建筑、绘画、雕塑、摄影和音乐等艺术领域也有着很广泛的应用,例如:在古希腊帕忒农神庙的设计中就存在着许多组黄金分割比;而在荷兰画家梵高的作品《岸边的渔船》中,整幅画的宽和高分别被桅杆和地平线分成两部分,这样的分割也正好符合了黄金分割比例。其实,在信息学也蕴含着这样的奥妙,本文就将通过两个例题,介绍信息学和黄金分割的一些联系。例题一取石子游戏(SHTSC2002,Day2)问题描述有两堆石子,游戏开始后,由两个人轮流取石子,每次有两种取法:一是在本资料由-大学生创业|创业|创业网提供资料在线代理|网页代理|代理网页|减肥药排行榜|淘宝最好的减肥药|什么减肥药效果最好|减肥瘦身药|任意一堆中取走任意数目的石子;二是可以在两堆中同时取走相同数量的石子。最后把石子全部取完的人是胜者。现在给出初始的两堆石子的数目a和b(0≤a,b≤109),假设双方都采取最好的策略,判断先手是否有必胜策略。算法一问题中,两堆石子的个数a和b决定了最后的胜负。因此,我们用(a,b)作为表示当前局面的“状态”。通过建立博弈树,判断给出的初始状态(a,b)是必胜还是必败。需要注意的是,由于规则中两个石子堆并没有差别,因此状态(a,b)和状态(b,a)实际上是等价的。来看一个例子,游戏开始时,两堆石子的数目分别是1和2,那么初始状态为(1,2),自顶向下构造出的博弈树如图2(其中,重复子状态可以只扩展一个)。图2接下来,就可以分三种情况,判断各个状态的胜负情况:(1)如果一个状态没有子状态,根据规则判断胜负;(2)如果一个状态至少有一个子状态先手败,那么该状态先手胜;(3)如果一个状态的所有子状态都是先手胜,那么改状态先手败。(0,0)(1,2)(0,2)(1,0)(1,1)(0,1)(0,0)(0,0)(0,1)(1,0)(0,1)(0,0)(0,0)(0,0)(1,2)(0,2)(1,0)(1,1)(0,1)(0,0)(0,0)(0,1)(1,0)(0,1)(0,0)(0,0)败败败败败败胜胜胜胜胜本资料由-大学生创业|创业|创业网提供资料在线代理|网页代理|代理网页|减肥药排行榜|淘宝最好的减肥药|什么减肥药效果最好|减肥瘦身药|这样,我们就可以得出初始状态的胜负情况(如图3)。具体实现时,可以采用动态规划或记忆化搜索解决。这个算法的空最坏情况下查询的次数约为2+[log1/ф108]间复杂度为O(N2),时间复杂度为O(N3)。附程序stone_1.pas。算法二显然上面的算法并不能有效的解决本题。我们需要进一步挖掘游戏规则的特点。根据两种取石子的方法,可以发现如果状态(a,b)是先手败,就能得到下面几种状态必为先手胜:(1)状态(a,i)(其中,i≠b)或状态(i,b)(其中,i≠a);(2)状态(a+i,b+i)(其中,i≠0)。也就是说,每个正整数在所有先手败状态中将出现且只出现一次,同时任何两个必败状态中两堆石子的差值各不相同。根据这个特点,我们可以构造出所有的先手败状态。首先,最小的先手败状态是(0,0),根据上面的规律,之后的先手败状态中就不再存在某一堆为0个石子的情况,同时也不会出现两堆石子个数相等的情况。因此,第二种先手败的状态中较小的一堆石子个数将是尚未出现的最小的整数1,而这种状态中两堆石子个数的差也是尚未出现的差值中最小的一个。这样,第二种先手必败的状态就是(1,2)。由此,我们得到了构造所有先手败状态的方法:开始时只有(0,0)一个先手败状态;第i次构造时,先找出在已知的先手败状态中没有出现的最小的整数a,则新产生的先手败状态就是(a,a+i)。这个算法的时间复杂度和空复杂度均为O(N)。附程序stone_2.pas。算法三虽然算法二的时空复杂度相对算法一有了巨大的进步,但由于本题数据规模巨大,仍然没有办法彻底解决。而这时,我们的分析也陷入如了僵局。那么就让我们先从小规模的情况开始分析。表1中列出了一些构造出来的必败状态(表中小数保留四位精度,下同)。可以发现,后面构造出来的状态中,较小一堆的石子数a与状态序号i的比值十分接近Φ!这提示我们,也许a的值与Φ∙i有一定的关系。所以,我们反过来观察Φ∙i与a之间的关系。序号i必败状态(a,b)a/ib/i1(1,2)1.00002.00002(3,5)1.50002.50003(4,7)1.33332.33304(6,10)1.50002.50005(8,13)1.60002.6000…………997(1613,2610)1.61792.6179998(1614,2612)1.61722.6172999(1616,2615)1.61762.61761000(1618,2618)1.61802.6180表1序号iΦ∙i状态(a,b)11.6180(1,2)23.2361(3,5)34.8541(4,7)46.4721(6,10)58.0902(8,13)………9971613.1799(1613,2610)9981614.7979(1614,2612)9991616.4160(1616,2615)10001618.0340(1618,2618)表2本资料由-大学生创业|创业|创业网提供资料在线代理|网页代理|代理网页|减肥药排行榜|淘宝最好的减肥药|什么减肥药效果最好|减肥瘦身药|列出的小规模情况中,第i个必败状态中较小一堆的石子数a都恰好等于Φ∙i的整数部分。于是我们提出了这样的猜想:第i个必败状态是([Φ∙i],[(Φ+1)∙i])1。可以证明,这个猜想是正确的[1]。因此,我们得出结论,对于状态(a,b)(其中,a≤b),如果aa1且baa1,则先手必败,否则先手必胜。这样算法的时空复杂度均为常数级的,问题得到了圆满的解决。附程序stone_3.pas。解题小结表3将上述三个算法进行了比较。算法一是解决博弈问题的常规方法,同时定义了状态;算法二,深入挖掘了游戏规则,找出了其中的特性;算法三则通过分析一些小规模的数据,找到了常数级的算法。通过这样不断的分析和挖掘,终于找到了问题本质上与黄金分割的联系,发现了这样一个博弈问题中蕴含的美。时间复杂度空间复杂度基本算法算法一O(N3)O(N2)根据博弈树进行动归算法二O(N)O(N)构造必败状态算法三O(1)O(1)直接判断胜负情况表3例题二登山问题(根据经典问题改编)问题描述单峰函数[2]f(x)在区间[0,L]上有极大值,要求通过一系列查询,找到这个极大值的横坐标x0。每次查询中,向交互库[3]提供一个查询点t,交互库将返回f(t)。数据范围:0L≤104,要求查询次数不超过40次,且计算结果与最优点x0误差不得超过10-3。算法分析对于区间内的两个不同的查询点,我们将函数值较大的称为好点,将函数值较小的称为差点。下面,我们将说明,最优点和好点必在差点的同侧。证明首先需要明确,最优点显然不会与差点重合。如果最优点与好点重合,那么命题显然成立。1本文中[x]表示x的整数部分,{x}表示x的小数部分。本资料由-大学生创业|创业|创业网提供资料在线代理|网页代理|代理网页|减肥药排行榜|淘宝最好的减肥药|什么减肥药效果最好|减肥瘦身药|如果最优点并不在好点的位置,那么将存在下面两种情况:(1)如图4(a),好点与差点分别位于最优点的两侧,此时命题显然成立;(2)如图4(b),好点与差点位于最优点同侧;此时,由于f(x)是单峰函数,离最优点较近的查询点必然是好点,因而最优

1 / 15
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功