骑士解题报告【信息技术】.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
骑士解题报告 广东中山纪念中学 陈启峰 【问题描述】 有一骑士在一个无限大的棋盘上移动。它每次的移动都用一个整数对来描述——整数对(a,b)表示骑士能从位置(x,y)跳到位置(x+a,y+b)或者(x-a,y-b)。每个骑士有一系列的已确定的整数对,描述这骑士能进行哪些移动。我们保证每个骑士能到达的位置不在同一直线上。 当两个骑士以位置(0,0)为始点能到达的所有位置完全相同时(可能做很多次移动),我们就说这两个骑士是等价的。可以证明对于每一个骑士,都存在一个只有两个整数对的等价骑士。 任务:读入一个骑士的所有整数对,找出一个只有两个整数对的等价骑士。 【问题分析】 【数学模型】 令输入的整数对分别表示为向量,向量……向量,找出两个整数对——向量和与这n个向量等价,也就是 对于任意的整数序列,都存在两个整数使得 并且对于任意两个整数,都存在一个整数序列,使得 【算法模型分析】 看到这个题目,最容易想到的算法是枚举这两个向量和用宽度优先搜索判断是否等价。但是要寻找的这两个向量的范围是无限大的,并且棋盘也是无限大的。因此这个算法宛如大海捞针一般,极难在有限的时间内找到解。 然后尝试贪心、动态规划、图论等硬做的算法,但这些算法都在预料之中以失败告终。 最后,看来只有必经之路——数学方法才能可以解决这个问题。 【确定总算法和研究对象】 用数学方法解决等价转化等题目的方法还是不胜枚举的。例如有归纳法,有总体法,有解方程法,有数形结合。对于这个题目,我们应选取什么数学方法好呢? 注意到,如果任意的三个向量都可以与某两个向量等价,那么便可以从n(n 2)个向量中任选三个向量出来,用与它们等价的两个向量代替它们,从而变成n-1个向量。不断重复上述的过程,直到只剩下两个向量为止,这时剩下的两个向量便是一个可行解。而由问题描述可以知道:对于任意三个向量都存在两个向量与它们等价。这便意味这种方法是可行的。 于是,就可以确定下总算法——不断化三为二,同时也产生了我们的研究对象——如何把三个向量等价替换为两个向量? 【分析研究对象】 因为满足条件的解(等价的两个向量)是无限多个的,解的范围没有多少限制,而我们仅仅需要这样一个解,所以这时确定下来的研究对象虽然看起来简洁明了,可是要解决该问题的难度依然相当大。 【“约制”思想确定新任务】 既然研究对象的条件、限制还是那么宽松,因而可先且放下研究对象,而尝试做些更“细”的工作——把两个向量等价转化为具有某些性质的两个向量——新任务。 【寻找两个向量的规律】 为了更加容易地找到两个向量的一般性质,可以先从一些小数据着手,试着找出有用的规律。比如当两个向量分别为(2,3), (4,2)时,在直角坐标系中能被这两个向量表示的点的位置如下图: 由此我们可以观察很多重要的性质: 1、所有的点都在且只在直线和直线上; 2、在Y轴上,所有的点都出现且只出现在上; 3、直线上的点都可通过平移Y轴而得到。 于是我们归纳出任意两个不在Y轴上的向量和能表示的点的一般性质: ①所有的点分布在且只在直线和直线上; ②在Y轴上,所有的点都出现且只出现在上; ③直线上的点都可通过平移Y轴而得到。 性质②的证明: 充分性—— 位置上都有点的证明: 对于任意的,令,,则 == 所以位置上都有点。 证毕。 必要性——在Y轴上,所有的点都只出现在上的证明: 设在Y轴上能用这两个向量表示的任意一点为,则必存在两个整数和,使得 由①式得 因为为整数,所以 因为与互质,所以 令,则可以推出,所以 所以必定存在一个整数使得,也就是说在Y轴上,所有的点都只出现在上。 证毕。 综上所述,可以得出性质②。 证毕。 【“约制”思想解决新任务】 有了上面富有价值的性质之后,摆在眼前的问题便是,如何利用性质恰当地约束转化后的两个向量?虽然约束的方式不可胜数,但是绝大数对解题并没有什么任何作用。此时就要取其精华了。 注意到在每一条有点的坚直直线上,一个显眼的性质是,上面的点都是相隔定长出现的。这催人从直觉上觉得,转化后的一个向量可以是一个坚直向量。这种感觉正确吗?正确!更重要的是,正因为这种“约制”思想,使解题的思路开始走出模糊、步入明晰。 下面给出转化后其中一个向量是坚直向量的转化方法: 设须要等价转化的两个向量分别为和。 如果或者,则可令转化后的两个向量为和; 如果或者,综合性质②和性质③,可以大胆地约制其中一个向量为,因为每一条直线上的点都是相隔个单位出现的。 此时,另一个向量应该是什么呢?由性质③可以推测,如果能找到一个向量,只用这个向量能且只能表示每一条直线上一个骑士能到达的点,那么问题就解决了。要找的这个向量的横坐标无疑可以是,于是顺理成章地想到用扩

文档评论(0)

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档