第一范文网 - 专业文章范例文档资料分享平台

备战NOIP2010提高组初赛复习 - 问题求解篇

来源:用户分享 时间:2020-06-26 本文由携手共老 分享 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

备战NOIP2010提高组初赛复习——问题求解篇

问题求解是信息技术竞赛初赛中常见题型,它共两题,每题5分,共10

分。诸如寻找假币、博弈原理、抽屉原理、容斥问题、排列组合问题、逻辑推理、递推关系等问题出现在问题求解中,但是在实际的竞赛中,问题求解得分率往往是不高的,下面我对问题求解的题型进行了一下探索。

一、寻找假币问题

有n(n?3)个硬币,其中一个是假币,已知假币的重量比其他的要重一些,你有一架天平。现在要称出哪个假币来。

解析:

首先我们先来考虑最简单的问题1。为了方便叙述,把n个硬币按1,2,?,n顺次编号。

若n=3,把一号硬币放在天平左边、二号硬币放在天平右边。如果天平: 1、左偏,一号重,是假币。 2、右偏,二号重,是假币。

3、保持平衡,那么一、二都是正常的硬币,因此就只有可能三号硬币是假币了。

因此n=3,至多一次就能称出哪个是假币。记作f(3)=1。

下面考虑n=9。把所有的硬币分成三组:A{1,2,3},B{4,5,6},C{7,8,9}。A组的硬币放在左边、B组放在右边。如果天平:

1、左偏,则假币在A组里面。 2、右偏,则假币在B组里面。 3、保持平衡,假币在C组里面。

无论在哪个组里面,我们已经把假币的范围从“9”缩小到了“3”,也就是减少到原来的1/3。之前我们已经研究过,3个硬币1次就能称出来,故而f(9)=2。

不难推广到一般的情况:

定理1.1 f(3n)=n。

证明:n=1,2时,已证。设n=k成立,则f(3k)=k;下面考虑n=k+1的情况。 将3k+1个硬币分成三堆A, B, C,使得|A|=|B|=|C|=3k。把A放在天平左边、B放在右边,天平:

1、左偏,假币在A 2、右偏,假币在B 3、平衡,假币在C

无论哪种结果,我们都把假币的范围缩小到了3k个硬币里面。而f(3k)=k,故而f(3k+1)=k+1。

综上,定理1.1成立。 稍经分析不难得到: 定理1.2 f(n)= ?log3n?

这个的证明和定理1.1完全类似,分n mod 3 = 0, 1, 2适当讨论即可。 我们必须注意到?log3n?是可行的,因为我们能够构造出这样一个方案。问题是它是否最优?

我们采取的方案是每次将硬币尽量均匀的三分,这样做的根据就是天平只有三种结果:左偏、右偏、平衡。于是就能保证无论假币在哪一份都能将结果的范围缩小到原来的1/3。从感性上认识,?log3n?应该就是最优解了。

为了更加严格的证明?log3n?的最优性,我们引进判定树的概念。

下图就是n=9时的一种判定树:

>

比较(1)与(2)

> = < 1 3 2

此题的判定树是这样一棵树:

比较(1,2,3)与(4,5,6) = 比较(7)与(8) > 7

9 = < 8

4 > < 比较(4)与(5) = 6

< 5

1、叶子节点代表一种可能的结果。

2、非叶子节点代表一次称量。

3、非叶子节点至多有三个儿子,分别代表天平的左偏、右偏、平衡三种情况。

任意一种称量方案都能唯一的表示成一棵判定树;反过来一棵判定树也唯一对应一种称量方案。

容易看出判定树的深度就是称量次数。这就是我们之所以引进它的原因。 做出判断之前,谁也无法预知哪个硬币是假币,每个都有可能是我们的目标;因此一个有意义的判定树应该具有至少n个叶子节点。

n个叶子节点的树的深度h ? ?log3n?,故而可以证明,f(n)= ?log3n?是最优的。

我们的结论是:有n(n?3)个硬币,其中一个是假币,假币的重量比其他的要重一些。给一架天平,至少称?log3n?次,就能找出那个假币。

具体的方案是将硬币每次都尽量均匀的三分。 让我们总结一下。

“三分”是整个解法的核心。我们选择三分,而不是二分或者四分是有原因的,它的本质是由判定树的特殊结构——三叉树——所决定的。

同时还必须注意一点,我们在三分的时候有两个字很讲究:“均匀”。实际上h ? ?log3n?中的“=”当且仅当硬币被均匀的分配时才能达到。

这里说的“均匀”是指“在最坏情况下获得最好的效果”。因为一棵树的深度是由它根节点儿子中深度最大的儿子决定的,为了使得整个树深度最小,我们就要务必使得深度最大的儿子深度最小,这就是“均匀”分配的理论根据。

练习:第 12 届全国青少年信息学奥林匹克联赛初赛题 现有 80枚硬币,其中有一枚是假币,其重量稍重,所有真币的重量都相同,如果使 用不带砝码的天平称重,最少需要称几次,就可以找出假币?你还要指出第1次的称重方法。请写出你的结果:_________________________________________________。

答案:4次 ;第一步,分成三组:27,27,26,将前2组放到天平上。

二、取石子游戏的策略及其应用

有一种很有意思的游戏,就是有物体若干堆,可以是石子或是围棋子等等均可。两个人轮流从堆中取物体若干,规定最后取光物体者取胜。取石子游戏是我国民间流传已久的一种博奕,在国外亦称Nim游戏。别看这游戏极其简单,却蕴含着深刻的道理。下面我们来分析一下要如何才能够取胜。

游戏Ⅰ 有若干堆任意数目的小石子{a1,a2,?,am}(m?1),两人轮流取石子,每人每次可以从其中任意一堆中取,每次可以取1、2、3、??或k(1?k?min{a1,a2,?,am})颗石子,把石子取完的人为胜者。

采用符号{a1,a2,?,am;k}来代表游戏Ⅰ中小石子的初始状况和限制条件,一个人取一次石子实际上就是把{a1,a2,?,am;k}中某个分量ai(1?i?m)减小为ai′,即{a1,a2,?,ai,?,am;k}—→{a1,a2,?,ai′,?,am;k}(0?ai′

例1 桌上放着一堆小石子一共100颗,两人(甲、乙)轮流取,每次可以取1至10颗,取完的人为胜者,怎样才能取胜?

分析这个问题实际上是取石子游戏的特殊情形{100;10},我们利用倒推法:容易看出11是取胜的关键数学,因为到此时,不论对方(甲)取多少颗(大于0且小于11),总留下大于0且小于11颗石子,这样乙方一次取完即获得胜利。同样地分析,要取到11必须取到22,33,44,55,66,77,88,99,这样我们就知道了获胜之道:

①先取1颗石子,留下99颗,然后对方取a(1?a?10)颗,己方取(11—a)颗,就总能掌握这种致胜的关键数,从而确保获胜。②如果对方先取,己方只需利用对方不知道其中奥秘,争取到一个致胜数,就总能依①中方法取到下一个致胜数,最后取得胜利。实际上,如果局中人均熟知获胜策略,那么开局的局势就已经完全决定了结局的输赢,例1其实是先取者必胜的局势,从这个例子的分析过程我们得到启示:可以用同余理论来探讨一般情况。

一般地,在取石子游戏{a1,a2,?,am;k中,ai≡ai′(modk+1)(i=1,2,?,m)其中0?ai′?k,在{a1′,a2′,?,am′;k}中有取胜策略的一方在{a1,a2,?,am;k}中也有取胜策略。证明 在{a1′,a2′,?,am′;k}中有获胜策略的一方,对于大于k的分量ai(i=1,2,?,m总能做到ai≡ai′(modk+1),即对方取a(1??k),己方取k+1-a,使两人各取一次之后该分量减小k+1,也就对第i堆各取n(n?1)次之后石子数便由ai=ai′+n(k+1)变成ai′,故在{a1′,a2′,?,am′;k}中有取胜策略的一方在{a1,a2,?,am;k}中也有取胜策略。

游戏Ⅱ 有若干堆任意数目的小石子{a1,a2,?,am},两人轮流从中取石

子,每人每次可以取走任意一堆中任意数目的石子,不能不取,把石子取完的人为胜者。

采用m元数组{a1,a2,?,am}(m?1)来描述这类取石子游戏,一人取走一次石子相当于用某个T变换把其中某个分量ai(1?i?m)减小为ai′,即{a1,a2,?,ai,?,am}T{a1,a2,?,ai′,?,am}(0?ai′

有趣的是为了解决这类一般情况,我们需要用到整数的二进位制,把m元数组{a1,a2,?,am}中的每一个分量用二进位制数表示,ai(1?i?m)写在第i行,同时对齐二进位制数的位数,在列上作十进位制加法,其和写在第(m+1)行,记为{n1,n2,?,nj,?,nl},如果所有这些和数nj(1?j?l)均为偶数,我们称这个m元数组为偶数组;若nj(1?j?l),中有一个数为奇数,则称之为非偶数组。

例如:对于3元数组{2,3,5}; a1 2 0 1 0 a2 3 0 1 1 a3 5 1 0 1

1 2 2 n1 n2 n3

因为其中n1=1,所以{2,3,5}是非偶数组。 同样,对于3元数组{2,3,1}: a1 2 1 0 a2 3 1 1 a3 1 0 1 2 2 n1 n2

由于nj(j=1,2)为偶数,则{2,3,1}为偶数组。 偶数组与非偶数组在T变换下具有如下性质:

(1)偶数组经过一次T变换之后一定变为非偶数组;

(2)对于非偶数组,一定可以找到某一个T变换,使其变为偶数组。 这样我们容易判定:如果给定的m元数组是偶数组,则后取者必有获胜策略;相反,若给定m元数组为非偶数组,则先取者有方法获胜,因为给定的m元数组为偶数组,先取者无论怎样取,只能将偶数组变为非偶数组,后取者则有策略将此时的非偶数组变为偶数组,由于每次取走石子,剩下石子数目一定越来越小,而{0,0,?,0}是偶数组,所以后取者获胜,同理可证相反情况。

例2 有三堆石子,各堆数目分别是2、3、6,两人轮流取,取完的人为胜者,若甲先乙后,谁取胜?

解:

a1 2 0 1 0 a2 3 0 1 1 a3 6 1 1 0 1 3 1 n1 n2 n3

ni为奇数i=1,2,3,所以{2,3,6}为非偶数,我们可以判定:先取者甲获胜,依性质证明过程给出的操作方法,只需将a3=6变为1,可以验证{2,3,

搜索“diyifanwen.net”或“第一范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,第一范文网,提供最新资格考试认证备战NOIP2010提高组初赛复习 - 问题求解篇 全文阅读和word下载服务。

备战NOIP2010提高组初赛复习 - 问题求解篇 .doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/wenku/1102929.html(转载请注明文章来源)

相关推荐:

热门推荐
Copyright © 2018-2022 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top