
(一)平衡,0在剩下的4个里
(二)不平,0在天平两边的8个里
第二步:
若是(一)把4分2份,仅拿其中一份即2个放上天平左边,在8个里任拿2个放天平另一边,两种可能:
(1)若平,剩下2个有一个是0,任取其中一个与一个称,即可找到0
(2)若不平,左边2个有一个是0,推理同上。
若是(二)比较麻烦,最好找支笔画图更容易理解
先给这8个标序号,左边是1234,右边5678。0有可能是12345678中任一个,还有假设左边重(假设任何一边重都对推出的结果没影响),
把678拿下来,把34和两个(除了标号的8个,有4个是)移到右边,把5和一个好球移到左边,这样两边都有四个,
原来:左1234,右5678
现在:左125,右34
出现两种可能:
(1)平,12345是,0在678中,任取其中两个放在天平两边称,
A、平衡则剩下的那个是0;
B、不平则是轻的是0,因为678原来都在天平右边,是轻的;1234都是,重的。
(2)不平,678是,0在12345中,也两种可能:
A、继续是左边重,移动过位置的345,0在12中,易推出0
B、变成是右边重了的话,没有移动过的12是,0在345中,
将34放天平两边,一目了然。
(A)如果平衡,5就是0,
(B)如果不平,重的那个是0(结合移动前后的变化,易推)
第三步都包含在以上分析中,所以称3次绝对可以找到0
好艰难,我在尽最大努力解析明白,希望大家都能看得懂。
若有更简单更快的方法,希望跟帖,共同讨论!
1 其实这就是一个搜索的算法
天平称小球问题有很多经典的范式解法,在这里我们谈论着只是其中最为广泛应用的一种——三进制编码解法。
为什么想起了使用三进制?其实很好理解。让我们考虑一下小球的状态,有:没放在天平上、在天平左盘、在天平右盘三种。我们不妨用一些数码来表示这三种状态:
0——没放在天平上
1——放在天平左盘
2——放在天平右盘
这样,我们就可以用一个数码串来表示某个小球被称量的过程,比如某个小球的编码是210120,就表明这个小球,第一次称量在右盘,第二次在左盘,第三次不在天平上,第四次在左盘,第五次在右盘,第六次不在天平上。很简单吧,仅仅用一个数码串就把小球复杂的称量过程表示出来了。
为了方便说明,下面都以“12小球称3次”来描述这个问题,不过,你很容易就能够推广到“M个小球称N次的情形”。好,闲言少叙,书归正传。
假设我们已经把12个小球编上不重复的3进制编码,称量的时候我们完全按照编码 *** 作,第0步,我们把12个小球上的编码第0位为1的放在天平左边,编码第 0位为2的放在天平的右边,编码第0位为0的则不放在天平上,记下称量结果;第1步,我们把12个小球上的编码第1位为1的放在天平左边,编码第1位为2 的放在天平的右边,编码第0位为1的不放在天平上,记下称量结果;如此下去,编码有N位,我们就称量N次,得到N组结果。
考察一下结果的状态:天平平衡、天平左边轻于右边、天平左边重于右边。咦?怎么也是3种。(hia hia,无巧不成书嘛,好戏还在后面)我们用0来表示天平平衡,用1天平左边轻于右边,用2天平左边重于右边;这样,称量了N次,我们就得到了一个N位的结果编码,它也是三进制编码。注意:这个编码有可能和某个小球的编码相同呢!:)
你似乎隐隐约约已经意识到了什么了吧。好,现在就把问题挑明:得到的结果编码,和非标准小球的编码一样,或者有直接的对应关系。(这个关系是什么?往下看)
如果我们确定了一组小球的称量方法(对应于12个小球的3进制编码),现在反过来考虑,原来某一步放天平左盘的小球现在放在天平右盘,原来放天平左盘的小球现在放在天平右盘,原来没放在天平上的小球应然不放在天平上。那么这样得到的小球编码(也是12个)和原来的重复吗?显然不重复,我们把由这种对应关系得到的编码叫做对偶码(这里下个定义:把编码中的每一位数码,1换成2,2换成1,0不变,得到新编码叫做原编码的对偶码。如22102的对偶码是 11201,或者说22101和11201互为对偶码)。这时候,你会考虑这样一个问题了——3位的3进制编码有多少个?答案是有3^3=27个(记做 3^N),比上面提到的24个编码还多3个。为什么要研究这个对称码?因为我们把A,B,C,D球放在左盘,把A’,B’,C’,D‘球放到右盘——与我们把A’,B’,C’,D‘球放在左盘,把A,B,C,D球放到右盘,其称量意义是一样的,得到结果是一样的,我们要避免这种重复 *** 作。所以说,实现这种算法,很重要的一点是选码——在互为一对对偶码的编码中选择一个来给小球编号。
到这里,我想你一定猜出来了——27比上面的24个编码多出的3个是什么码?他们是000,111,222。000和自身为对偶码,111和222互为对偶码。为什么要去掉他们3个?我想还是不放在这里说明了,要解决这个问题你得看看后面的数学证明先!
于是,我们得出结论:如果正确选择了一组3进制码,分别用来给小球编号,那么严格按照小球编码的称量过程得到的结果代码,必然是非标准球的代码,或者是他的对偶码。(由于我们给小球的编码中,任意两个小球的编码不互为对偶码,所以,我们的称量 *** 作唯一确定了非标准小球)此结论的证明方法过于繁复(我用 word打了4页),所以放在文后供打包下载。
下面说说程序实现编码的具体过程。
参考上图,我们首先取得用一个code数组来存放编码,为了节省空间,在我的程序里code数组存放的是十进制编码,我用 GetTheBallnum2Code()和GetTheBallcode2Num()来实现三进制和十进制之间的相互转换。我们首先把编码全部存入数组,然后去掉000,111,222这三个编码,然后再剩余的编码中再删掉一半,得到的12个编码标记给小球就行了。对于1开头的编码我们选择的是比 111大的所有编码,对于2开头的编码,我们划去“1开头我们选的那部分编码”的对偶码,对于0开头的编码,我们选择的是从左向右的编码位中,第一个不为 0的数码是1的编码(此处酷似好难理解,其实第一个不为0的数码不是1就是2,我们删掉了是2的那一半)。
好了,数数看,看好删了一半剩了一半。按照上图的编码方式,经过 *** 作得到的结果码,如果在小球编码中,那个编码的小球就是非标准球,且比标准球轻。如果结果码不在小球编码中,那么结果码是非标准球的对偶码,非标准球比标准球重。
把12个球编成1,212号,则可设计下面的称法:
左盘 右盘
第一次 1,5,6,12 2,3,7,11
第二次 2,4,6,10 1,3,8,12
第三次 3,4,5,11 1,2,9,10
每次都可能有平、左重、右重三种结果,搭配起来共有27种结果,但平、平、平的结果不会出现,因为总有一个球是不相等的。同样左、左、左,右、右、右的结果也不回出现,因为根据设计的称法,没有一个球是三次都在左边或右边的。剩下的24种结果就可以判断出哪种情况是哪一个球了。例如:如果结果是平、平、左或是平、平、右,就可判断出是9号球,因为第一次与第二次都没有9号球,唯独第三次有9号球,而第一次与第二次都是平的,只有第三次是失衡的,说明9号球的重量与其它的球不同。可依据此原理判断出其它的各种情况分别是哪个球。
最少一次。
分析:有9个球和一个天平,有一球稍轻,每边放4个球,还剩1个球,假设天平是平衡的,所以剩下的那个就是轻的,最少一次。
乘法:
①求几个几是多少;
②求一个数的几倍是多少;
③求物体面积、体积;
④求一个数的几分之几或百分之几是多少。
除法:
①把一个数平均分成若干份,求其中的一份;
②求一个数里有几个另一个数;
③已知一个数的几分之几或百分之几是多少求这个数;
④求一个数是另一个数的几倍。
先把小球分成A、B、C、D四组,每组三个球。 选择A组和B组称量一次,再选C组和D组称量一次,这样就可以选出一组和其他组重量不一样的,这时也知道了那个重量不一样的小球比别的小球是轻是重。 取出选出这一组的三个小球,分别标为E、F、G, 先选择E球和F球称量一下,如果重量一样,那么G球就是所求, 如果重量不一样,依据先前得知不一样的小球是轻是重,按称量结果选择E球或F球。 追问: 天平 没刻度 回答: 没有刻度不是应该知道天枰往那边偏吗? 追问: 哪边偏也不能知道那个球是轻是重啊 回答: 先把小球分成A、B、C、D四组,每组三个球。 选择A组和B组称量一次,如果相同就随便拿一个跟C称,如果也想同,那么D就是有问题的。如果A组和B组称量一次不同,那么随便拿一组与C称,就知道A组或者B组哪个有问题了,这样按照下面的方面就能得到结论。 追问: 像第一种情况,如果说D是有问题的,但是已经用了2次机会,但是D有3个球不知道轻重还是量不出来,我估计这个题目有问题,应该量不出来
从8个球中任意取2组3个球放在天平上称,
如果重量相等,那么重的球必然在余下的2个球中,故将那个2个球放在天平上称即可;
如果有一边重,那么重的球必然在这一边的3个球里,
再从这3个球中任意取2个出来称,
如果一样重,那么重的球就是余下的那个球,
如果一边更重,则便是这个球了
采用二分法来求出其中最多的球数。
因为已知“坏球”是较轻的,因此采用三分法效率最高。
即1到3球需1次;4到9球需2次;10到27球需3次。
则关系式有:
Y=3的X次方。
或表示成X=Log3底Y。
乘法的计算法则:
数位对齐,从右边起,依次用第二个因数每位上的数去乘第一个因数,乘到哪一位,得数的末尾就和第二个因数的哪一位对齐。
一个乘数互补,另一个乘数数字相同的速算技巧。
这类速算的计算口诀是这样的,一个头加1后,头乘头,尾乘尾。请看下面的例子。
2744=2+1=334=1274=282744=1228
方法几种。至少可以:
先每4个为一份,分三份,任意两份用天平称,若平衡,则轻球必在剩余那份;再将剩余4个分两份,轻的一边必有轻球,再将轻的一边的两球各自放到天平两边,就找出轻球了。若第一次称就不平衡,则轻球一定在轻的一边,再按照后续相同方法即可找出轻球。
还可先每6个为一份,轻的一份必有轻球,然后将轻的6个分两份,轻的三个中必有轻球,最后各放一个,若平衡,则轻球为没有称到的那个,若不平衡,轻的那边必定就是轻球。
以上就是关于有12个小球,其中只有一个与其他11个不一样重请问用天平如何称3次并找出这个球全部的内容,包括:有12个小球,其中只有一个与其他11个不一样重请问用天平如何称3次并找出这个球、c语言问题,麻烦解一下,用数学也可以。、清华难题,有12个球,外表相同,其中有一个球的质量不同于其他的,请问如何用天平三次把那个球找到等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)