算法合集之《一类称球问题的解法》

一类称球问题的解法长沙雅礼中学何林关键字判定树三分均匀摘要本文对一类天平称球问题提出了完整、严谨的解法,在此基础上总结了研究过程中的一些心得和方法。引言有n(n≥3)个球,其中一个是次品,你有一架天平。现在要称出哪个次品来。问题1已知次品的重量比其他的要重一些。问题2不知道次品的重量。问题3不知道次品的重量。不仅要求出次品,还要求次品的轻重。问题4不知道次品的重量,要求次品和次品的轻重。另外你手里还得到了一个标准球。面对这一系列类似的问题,我们该从何入手?简单问题的分析先来考虑最简单的问题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.1f(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、左偏,次品在A2、右偏,次品在B3、平衡,次品在C无论哪种结果,我们都把次品的范围缩小到了3k个球里面。而f(3k)=k,故而f(3k+1)=k+1。综上,定理1.1成立。稍经分析不难得到:定理1.2f(n)=这个的证明和定理1.1完全类似,分nmod3=0,1,2适当讨论即可。我们必须注意到是可行的,因为我们能够构造出这样一个方案。问题是它是否最优?我们采取的方案是每次将球尽量均匀的三分,这样做的根据就是天平只有三种结果:左偏、右偏、平衡。于是就能保证无论次品在哪一份都能将结果的范围缩小到原来的1/3。从感性上认识,应该就是最优解了。为了更加严格的证明的最优性,我们引进判定树的概念。下图就是n=9时的一种判定树:比较(1,2,3)与(4,5,6)>=<比较(1)与(2)>13=<2比较(7)与(8)>79=<8比较(4)与(5)>46=<5此题的判定树是这样一棵树:1、叶子节点代表一种可能的结果。2、非叶子节点代表一次称量。3、非叶子节点至多有三个儿子,分别代表天平的左偏、右偏、平衡三种情况。任意一种称量方案都能唯一的表示成一棵判定树;反过来一棵判定树也唯一对应一种称量方案。容易看出判定树的深度就是称量次数。这就是我们之所以引进它的原因。做出判断之前,谁也无法预知哪个球是次品,每个都有可能是我们的目标;因此一个有意义的判定树应该具有至少n个叶子节点。n个叶子节点的树的深度h≥,故而可以证明,f(n)=是最优的。至此完整的解决了问题1。我们的结论是:有n(n≥3)个球,其中一个是次品,次品的重量比其他的要重一些。给一架天平,至少称次,就能找出那个次品。具体的方案是将球每次都尽量均匀的三分。(详见上文)让我们总结一下。“三分”是整个算法的核心。我们选择三分,而不是二分或者四分是有原因的,它的本质是由判定树的特殊结构——三叉树——所决定的。同时还必须注意一点,我们在三分的时候有两个字很讲究:“均匀”。实际上h≥中的“=”当且仅当球被均匀的分配时才能达到。这里说的“均匀”是指“在最坏情况下获得最好的效果”。因为一棵树的深度是由它根节点儿子中深度最大的儿子决定的,为了使得整个树深度最小,我们就要务必使得深度最大的儿子深度最小,这就是“均匀”分配的理论根据。或许你觉得这些总结是显然的、多余的废话。面对一个简单的问题,你当然能够游刃有余,也不需要提炼出什么经验、方法;可是当问题被复杂化、隐蔽化,你还能如此得心应手吗?称球问题的拓展一、问题的提出与初步分析问题4有n(n≥3)个球,其中一个是次品,已知:1、次品的重量与其他的球不同,不知道轻重。2、你有一架天平和一个标准球问至少要称...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供参考,付费前请自行鉴别。
3、如文档内容存在侵犯商业秘密、侵犯著作权等,请点击“举报”。

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

客服邮箱:

biganzikefu@outlook.com

所有的文档都被视为“模板”,用于写作参考,下载前须认真查看,确认无误后再购买;

文档大部份都是可以预览的,笔杆子文库无法对文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;

文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为依据;

如果您还有什么不清楚的或需要我们协助,可以联系客服邮箱:

biganzikefu@outlook.com

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

确认删除?