ImageVerifierCode 换一换
格式:DOC , 页数:12 ,大小:364KB ,
资源ID:9443682      下载积分:10 金币
验证码下载
登录下载
邮箱/手机:
图形码:
验证码: 获取验证码
温馨提示:
支付成功后,系统会自动生成账号(用户名为邮箱或者手机号,密码是验证码),方便下次登录下载和查询订单;
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/9443682.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请。


权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4009-655-100;投诉/维权电话:18658249818。

注意事项

本文(浅谈数形结合思想在信息学竞赛中的应用.doc)为本站上传会员【pc****0】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

浅谈数形结合思想在信息学竞赛中的应用.doc

1、浅谈数形结合思想在信息学竞赛中的应用 安徽 周源 浅谈数形结合思想在信息学竞赛中的应用 安徽 周源 目录 目录 1 摘要 2 关键字 2 引子 3 以形助数 3 [例一]Raney引理的证明 3 [题意简述] 3 [分析] 3 目标图形化 3 小结 4 [例二]最大平均值问题(USACO 2003 March Open) 4 [题意简述] 4 [分析] 5 目标图形化 5 构造下凸折线 5 维护下凸折线 6 最后的优化:利用图形的单调性 7 小结 7 以数

2、助形 7 [例三]画室(POI oi V Stage I) 8 [题意简述] 8 [分析] 8 目标数值化 9 动态规划解题 9 小结 10 总结 10 附录 11 关于2003年上海市选拔赛题Sequence 11 [题意简述] 11 [分析] 11 论文附件 12 参考文献 12 摘要 数与形是数学中两个最古老而又最基本的对象,数形结合又是一种重要的数学思想。 本文主要以当今信息学奥赛中几道试题为例,从以形助数和以数助形两个侧重点讨论了数形结合思想在信息学竞赛解题中广阔的应用前景。 最后文章分析指出数形结合思想的两个重要特性并由此提出“数形结合”重在有

3、机的结合,希望对同学们在实际比赛中灵活的运用数形结合思想有一些帮助。 关键字 信息学竞赛 数学思想 数形结合思想 以数助形 以形助数 辩证矛盾 多元性 个体差异性 思维、编程、时间、空间复杂度 引子 数与形是数学中两个最古老而又最基本的对象,数形结合又是一种重要的数学思想。 在当今信息学竞赛中,某些纷繁复杂的试题背后,往往蕴含着丰富的几何背景,而计算几何类问题却又需要借助计算机强大的实数运算能力。正如华罗庚先生所说的“数形结合千般好”,在算法和程序设计中,巧妙地运用数形结合思想,可以顺利的破解问题,化难为易,找到问题的解题思路。 数形结合思想常包括以形助数、以数助形两个方面

4、 以形助数 正如前文所述,一些试题中繁杂的代数关系身后往往隐藏着丰富的几何背景,而借助背景图形的性质,可以使那些原本复杂的数量关系和抽象的概念,显得直观,从而找到设计算法的捷径。 [例一]Raney引理的证明 [题意简述] 设整数序列A = {Ai, i=1, 2, …, N},且部分和Sk=A1+…+Ak,序列中所有的数字的和SN=1。 证明:在A的N个循环表示 先设一个序列是环状的,则从其任意一个字符处断开以后形成的非环序列即为该序列的一个循环表示。 中,有且仅有一个序列B,满足B的任意部分和Si均大于零。 [分析] 先来看一个例子,若有序列A = <1, 4, -5,

5、 3, -2, 0>,其6个循环表示为 1. <1, 4, -5, 3, -2, 0> 2. <4, -5, 3, -2, 0, 1> 3. <-5, 3, -2, 0, 1, 4> 4. <3, -2, 0, 1, 4, -5> 5. <-2, 0, 1, 4, -5, 3> 6. <0, 1, 4, -5, 3, -2> 其中只有第4个序列,部分和为3, 1, 1, 2, 6, 1,满足成为序列B的条件。 若要用一般的代数或是组合方法来证明这个有趣的结论,似乎无从下手,但若要想到了用“形”来帮忙,问题就简单多了。 目标图形化 周期性的推广A序列,得到一个无穷序列,便于观

6、察其循环表示,得到: 同时计算这个序列的部分和Si,因为这个序列是周期性的,因此对于所有的k>0,均有Sk+N=Sk+1。如果做出这个函数的图像,则可以说函数有一个“平均斜率”为:每沿横轴正方向走N个单位,函数值就增加1。于是如下图所示,可以用两条斜率为的直线“夹住”函数包含的所有点: 图 1 无穷序列的部分和函数图像 图示中N=6,且使用了上文举的例子。注意较低的那条直线,在每连续的N个单位长度中,它与函数图像有且仅有一个交点,这是因为斜率是的直线在每N个单位长度中最多到达一次整数点。这个交点是在这以后的N个点中

7、的最低值,因此由此处的后一个位置导出的循环表示的所有部分和均为正数。而同时每连续N个单位长度仅有一个交点也证明了解的唯一性。 小结 一个简单的几何论证就证明了著名的Raney引理,其简练是其他方法不能企及的。 Raney引理有很广泛的应用,Catalan数以及扩展Catalan数的组合公式就可以用该引理轻松解决。比如今年上海市选拔赛第二天比赛中的序列(Sequence)以及OIBH练习赛中的项链,使用Raney引理都是最简单的方法之一。 用Raney引理解答Sequence的过程,详见附录。 用几何图形辅助思考,不只停留在组合计数这一类中,更渗透在算法设计和优化的每一个分支中,

8、近年来流行的“斜率优化”法是另一个很好的例子。 [例二]最大平均值问题(USACO 2003 March Open) [题意简述] 读入一列正数,a1, a2, …, aN,以及一个数F。定义,i≤j。 求Max{ave(a, b), 1≤a, b≤N,且a≤b-F+1},即求一段长度大于等于F且平均值最大的子串。 范围:F≤N≤105。 [分析] 简单的枚举算法可以这样描述:每次枚举一对满足条件的(a, b),即a≤b-F+1,检查ave(a, b),并更新当前最大值。 然而这题中N很大,N2的枚举算法显然不能使用,但是能不能优化一下这个效率不高的算法呢?答案是肯定的。 目

9、标图形化 首先一定会设序列ai的部分和:Si=a1+a2+…+ai,,特别的定义S0=0。 这样可以很简洁的表示出目标函数! 如果将S函数绘在平面直角坐标系内,这就是过点Sj和点Si-1直线的斜率! 于是问题转化为:平面上已知N+1个点,Pi(i, Si),0≤i≤N,求横向距离大于等于F的任意两点连线的最大斜率。 构造下凸折线 有序化一下,规定对i

10、在平方级算法中,若要检查ave(a, b),那么一定有Pa∈Gb;因此平方级的算法也可以这样描述,首先依次枚举Pb点,再枚举Pa∈Gb,同时检查k(PaPb)。 若将Pi和Gi同时列出,则不妨称Pi为检查点,Gi中的元素都是Pi的被检查点。 当我们考察一个点Pt时,朴素的平方级算法依次选取Gt中的每一个被检查点p,考察直线pPt的斜率。但仔细观察,若集合内存在三个点Pi, Pj, Pk,且ik(Pj, Pk),就很容易可以证明Pj点是多余的。 图 2 若k(Pt, Pj) > k(Pt,

11、 Pi),那么可以看出,Pt点一定要在直线PiPj的上方,即阴影所示的1号区域。同理若k(Pt, Pj) > k(Pt, Pk),那么Pt点一定要在直线PjPk的下方,即阴影所示的2号区域。 综合上述两种情况,若PtPj的斜率同时大于PtPi和PtPk的,Pt点一定要落在两阴影的重叠部分,但这部分显然不满足开始时t>j的假设。于是,Pt落在任何一个合法的位置时,PtPj的斜率要么小于PtPi,要么小于PtPk,即不可能成为最大值,因此Pj点多余,完全可以从检查集合中删去。 这个结论告诉我们,任何一个点Pt的检查集合中,不可能存在一个对最优结果有贡献的上凸点,因此我们可以删去每一个上凸点,剩

12、下的则是一个下凸折线。最后需要在这个下凸折线上找一点与Pt点构成的直线斜率最大——显然这条直线是在与折线相切时斜率最大,如图所示。 图 3 维护下凸折线 这一小节中,我们的目标是:用尽可能少的时间得到每一个检查点的下凸折线。 算法首先从PF开始执行:它是检查集合非空的最左边的一个点,集合内仅有一个元素P0,而这显然满足下凸折线的要求,接着向右不停的检查新的点:PF+1, PF+2, …, PN。 检查的过程中,维护这个下凸折线:每检查一个新的点Pt,就可以向折线最右端加入一个新的点Pt-F,同时新点的加入可能会导致折线右端的一些点变成上凸点,我们用一个类似于构造凸包的过程依次删去

13、这些上凸点,从而保证折线的下凸性。由于每个点仅被加入和删除一次,所以每次维护下凸折线的平摊复杂度为O(1),即我们用O(N)的时间得到了每个检查集合的下凸折线。 最后的优化:利用图形的单调性 最后一个问题就是如何求过Pt点,且与折线相切的直线了。一种直接的方法就是二分,每次查找的复杂度是O(log2N)。但是从图形的性质上很容易得到另一种更简便更迅速的方法:由于折线上过每一个点切线的斜率都是一定的 由于折线没有连续性,因此更准确的应该说,过每一个点切线斜率的范围都一定的。 ,而且根据下凸函数斜率的单调性,如果在检查点Pt时找到了折线上的已知一个切点A,那么A以前的所有点都可以删除了:过这

14、些点的切线斜率一定小于已知最优解,不会做出更大的贡献了。 于是另外保留一个指针不回溯的向后移动以寻找切线斜率即可,平摊复杂度为为O(1)。 至此,此题算法时空复杂度均为O(N),得到了圆满的解决。 小结 回顾本题的解题过程,一开始就确立了以平面几何为思考工具的正确路线,很快就发现了检查集合中对最优解有贡献的点构成一个下凸函数这个重要结论,之后借助计算几何中求凸包的方法维护一个下凸折线,最后还利用下凸函数斜率的单调性发现了找切线简单方法。题解围绕平面几何这个中心,以斜率为主线,整个解题过程一气呵成,又避免了令人头晕的代数式变换,堪称以形助数的经典例题。 顺便提一下:这种方法在加速决策过

15、程,很多动态规划算法都可以运用本题“斜率优化”的方法提高算法效率。如IOI 2002的batch和BOI 2003的euro等。至于这类题目的共同特点,还是很值得研究的,但不在本文讨论范围内,因而不再讨论,但欢迎有兴趣的同学以后和我交流。 以数助形 古希腊的毕达哥拉斯认为“万物皆数”,的确,数是反映事物本质特征的最好方法之一。数学发展史上,正是在解析几何创立之后,人们才对各种繁杂的曲线有了更深入的了解。如今信息时代中,计算机处理各类事物,最终无不是归结于二进制数的基本运算,数的重要性可见一斑。 在当今信息学竞赛中,一些试题给出的描述中图形极为复杂,容易使选手陷入“迷魂阵”,在这种情况下,

16、以数助形,一举抓住其本质特征,不失为解题的一种好方法。 [例三]画室(POI oi V Stage I) [题意简述] 定义尺寸为0的方阵为一个1*1的矩阵,在其唯一的一个方格中有一个小孔。 对于i>0,递归的定义尺寸为i的方阵如下图所示: 图 4 给定方阵的尺寸N,以及另外两个参数X和Y。准备两个尺寸为N的方阵,一个叠放在另一个上面,再将上面的方阵向右移动X列,同时向上移动Y行。 如此操作之后,求两个方阵有多少个公共的孔。 如右上图,尺寸为2的方阵,向右平移2列,向上平移2行。则两个方阵有3个公共小孔。 范围:N≤100。 [分析] 直接分析两个方阵相交后的情况是可

17、行的,我曾经看过一些集训队前辈的解题报告,都是这么分析的,但是方法很繁,思考量很大。 下图是某解题报告中的一个说明附图,报告中先标出两个方阵的相交区域,再分情况讨论。显然可以看出,直接从“形”来分析本题,路子是很坎坷的。 图 5 目标数值化 我们不如换至和“形”相对的另一面“数”来思考,按照下图所示的x, y方向为每行每列从0开始编号,最大至2N-1,于是每一个方格都有唯一的坐标(x, y)。 图 6 下面来研究一下在什么条件下,一个方格P(x, y)内有小孔。由于方阵是二分递归定义的,于是我们很自然联想到将x和y化为二进制。设x和y的二进制表示分别为: a1a2a3…a

18、N 和 b1b2b3…bN 来看两个数的第1位,a1和b1,如下图,它们一共有4种取值方法,其分布分别对应着递归定义中的左上、左下、右上、右下四块区域。显然当a1=0且b1=1时无论以后各位取什么数,P点内都不会有小孔:因为其已经落在了左上无孔区。否则可以同理讨论两个数的第2位,第3位…… 图 7 示意(a1, b1)的取值分布情况 得到的结论是,当且仅当不存在1≤i≤N,满足ai=0且bi=1时,方格P内有小孔。不妨称这个为方格的有孔性质。 动态规划解题 后面的问题就非常简单了,题目要找的无非是这样的有序数对(x, y)的个数: 0≤x, y,x+X, y+Y≤2N-1,且(

19、x, y),(x+X, y+Y)的二进制表示都满足有孔性质 称这个为方格的有公共孔性质。 我们可以采用动态规划的方法:首先将X, Y也都转化成二进制形式: p1p2p3…pN 和 q1q2q3…qN 以位数为阶段,通过记录进位情况保证无后效性:f(i, k1, k2)表示第i位至第N位部分满足有公共孔性质的有序对总数,且要满足这一部分有序对的坐标和对应部分的X, Y相加进位分别是k1和k2:显然0≤k1, k2≤1。 动态规划的状态转移是非常简单的,但描述比较复杂:每一次转移需要约(22)2=16次运算,因此不再赘述,有兴趣的读者可以查看附件中的程序。 最后说明一下,题目所要的答案

20、就是f(1, 0, 0)。 算法若不算上高精度,时间复杂度为O(N),若使用循环数组,空间上仅需要常数个高精度数组 直接用“形”的方法做出的程序,空间复杂度是O(N)的,而且程序很长,详见附录。 ,而且实现程序也极为简单,包括高精度也不过100多行。对比从“形”上得出的算法,“数”的优越性是不言而喻的。 小结 回顾解题过程,当分析发现两方阵相交情况较复杂,不宜讨论时,我们决定避开“形”的正面冲突,而从“数”这方面下手,很快便取得了令人满意的效果:方格的有孔性质和有公共孔性质使题目的要求显得简单了许多。到此就可以套用经典的动态规划算法了。 可以说本题是一个较好的例子,但类似以数助形的例

21、题似乎比较罕见。事实上,正如前文所述,一般的计算机都是以数为基础的,同学们在写各类程序的时候,最终还是要归结到“数”来实现,对数的重要作用多少有些熟视无睹了。 而从上例又可以看出,如果试题加以适当的“误导”,选手们背离“数”的捷径,南辕北辙也不是没有可能的。因此,在遇到如同上例的题目时,面对多元化的复杂图形,化形归数,往往是抓住题目要害的好方法。 总结 数与形是现实世界中客观事物的抽象和反映,是数学的基石,也是信息学竞赛命题涉及的两个主要方面。数形结合是一种古老的数学思想,新兴的信息学奥林匹克竞赛又赋予她新的活力。 上文举了三个实例,大体上来说,都巧妙的运用了数形结合思想。但从细节上分

22、析,它们之间仍略有差异。 其一,三者从两个不同的侧重点阐述了数形结合思想的内涵,即以形助数和以数助形。但在实际问题中,数和形决没有明确的界限,数形结合思想也并不仅仅局限于文中提出的两个方面。更多的情况下,数与形互相促进、互相包含,在一定条件下互相转化,可以用“数形互助”一词来形容。 这,体现了数形的辩证矛盾关系和数形结合思想的多元性。 其二,用“形”来解例题二,似乎是唯一的出路,但在例一和例三中,并不是仅仅能用文中提到的方法解题,其他精彩解法我也略知一二。但相比而言,巧妙的使用数形结合思想会大大降低思考和编程复杂度,为我们在短短的竞赛时间中迅速解题开辟了一条便捷的道路。 需要指出的是,

23、不同的人有不同的知识结构,比赛经验等,他们对某一算法难度系数的感觉也是不同的。因而对同一题而言,不同的人可能会选择不同的数形之路解题。这,体现了数形结合思想的个体差异性。 而本文提出的三个例子,都是选择了大多数人能够接受的算法,却并不能说是每位读者心目中最简单的算法。但醉翁之意不在酒,几个小例子仅作抛砖引玉,重点在于探讨如何在信息学竞赛中运用数形结合思想。 在信息学竞赛中运用数形结合思想,就是在处理问题时,斟酌问题的具体情形,善于抓住问题的主要矛盾,使数量关系的问题借助于几何图形直观而形象化,或者使图形问题借助于数量关系而本质化。 数形结合,重在“结合”二字。灵活的运用数形结合思想,需要

24、重视思想的个体差异性,根据各人的现有知识水平和思维方式,有机的将抽象的数学、计算机语言与直观的图形结合起来,将抽象思维与形象思维结合起来,实现抽象概念与具体形象的联系和转化,更快更好更简单的解决实际问题。 附录 关于2003年上海市选拔赛题Sequence [题意简述] 一个序列{Ai, i=0, 1, 2, …, 3N}由3N+1项组成,每一项要么为1,要么为 -2。定义部分和SK=A0+A1+…+AK,求所有满足性质P的序列A的数目,性质P为:S3N = 1且对于所有的K = 0, 1, 2, …, 3N-1, 3N,有SK>0。即所有项的和为1,且所有部分和为正。 例如 N=2

25、 的时候,共有3组这样的序列: 1, 1, 1, -2, 1, 1, -2, 1, 1, 1, 1, -2, 1, -2, 1, 1, 1, 1, 1, -2, -2。 范围:N≤1000。 [分析] [引理]任一序列A,它的任何一种循环表示都不与自身相同。 [证明]若相同,根据循环串的性质,其必定可以分成d>1个完全相同部分。设每部分和为s,显然有s*d=1,而d>1,则s一定不是整数,这与序列中所有项都是整数矛盾。 因此,A的任意循环表示都不等于A。Q.E.D. [定理]满足性质P的序列个数为。 [证明]列出所有的A序列,一共有个。 根据其循环表示分类,由于[引理

26、]的成立,每一类中一定都有3N+1个序列,即一共类。又因为Raney引理成立,所以每一类中有且只有一个序列满足性质P。 即满足性质P的序列总数为。Q.E.D. 同样的方法,可以推出Catalan数的公式,这里不再赘述。 论文附件 POI oi V Stage I Painter’s Studio一题,集训队前辈的解题报告: 特别感谢湖南长郡中学的金恺提供这份报告。 POI oi V Stage I Painter’s Studio一题,数形结合思想算法的程序: 参考文献 CONCRETE MATHEMATICS by Ronald L. Graham & Donald E. Knuth & Oren Patashnik USA Computing Olympiad : Polish Olympiad in Informatics : http://www.oi.edu.pl/ 上海市NOI’2003选拔赛(SHTSC 2003)试题 数形结合思想在数学教学中的妙用 from 教育教学论文网 第12页 共12页

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服