我高中时想出的:)
把12个球分成三堆. 把其中两分放上去。有两种情况
1)平衡,此时,把剩下的三个和天平上其中一边的兑换(第二次称), 可以判断出
球的轻重和在哪三个里面,再称一次可以完成。(此种情况比教简单)
2)不平衡,我们不妨把球编号,此时在天平上的都可能有问题,编号为
1?,2?,3? ------- 4?,5?,6? 在下面的肯定是好的编号为 7o,8o,9o
然后,做交换 天平上为 1?,8o,9o --- 4?,2?,3? 地下为 7o,5?,6? (第二次称)
此时有三种情况
a)天平平衡,5?,6?有问题,根据天平原来的状态可以判断出轻重,再称一次可以完成。
b)天平保持不变,1?4?有问题,再称一次可以完成。1?4?中随便拿一个和7,8,9中的一个比教。
c)天平颠倒,2,3,有问题,再称一次可以完成
把12个球分成三堆. 把其中两分放上去。有两种情况
1)平衡,此时,把剩下的三个和天平上其中一边的兑换(第二次称), 可以判断出
球的轻重和在哪三个里面,再称一次可以完成。(此种情况比教简单)
2)不平衡,我们不妨把球编号,此时在天平上的都可能有问题,编号为
1?,2?,3? ------- 4?,5?,6? 在下面的肯定是好的编号为 7o,8o,9o
然后,做交换 天平上为 1?,8o,9o --- 4?,2?,3? 地下为 7o,5?,6? (第二次称)
此时有三种情况
a)天平平衡,5?,6?有问题,根据天平原来的状态可以判断出轻重,再称一次可以完成。
b)天平保持不变,1?4?有问题,再称一次可以完成。1?4?中随便拿一个和7,8,9中的一个比教。
c)天平颠倒,2,3,有问题,再称一次可以完成
先称两组,
if 这两组重量相同,
{
则重球必定在剩余的一组中,
todo2:将这组在分两组,每组两个,再称,重球必在重的一方,重的一方两个再称,则见分晓。
}
else
{
重球必定在较重的一组中
goto todo2:
}共三次
1)平衡,此时,把剩下的四个中拿三个和天平上其中三个称(第二次称),
a)平衡,则地上的一个是有问题的,在一次可以判断出轻重。
b)不平衡,后称的三个可以判断出轻重,在一次可以找出是哪个。2)不平衡,我们不妨把球编号,此时在天平上的都可能有问题,编号为
1?,2?,3? 4?------- 5?,6? 7?,8? 在下面的肯定是好的编号为 9o.10o,11o,12o,
然后,做交换 天平上为 1?,9o,10o,11o---5?,2?,3?,4? 地下为 6?,7?,8?12o (第二次称)
此时有三种情况
a)天平平衡,6?,7?,8?有问题,根据天平原来的状态可以判断出轻重,再称一次可以完成。
b)天平保持不变,1?5?有问题,再称一次可以完成。1?5?中随便拿一个和9.10.11.12中的一个比教。
c)天平颠倒,2,3,4有问题,再称一次可以完成
if 这两组重量相同,
{
则重球必定在剩余的一组中,
todo2:将这组在分两组,每组两个,再称,(此时必不平衡)重球必在重的一方
,重的一方两个再称,(此时称谁:) 如果我拿低的一方称,平衡了,怎么办?) 则见分晓。
}
2.将A6分成3,3称一回
3.A6-3,3相等,则将B6分成3,3称一回
4.B6-3,3中必有不等,
5.拿A6-3称与B6-3,3各称一回,得出不等之B6-3
6.B6-3称两次即得出此球
Dim ball(12)
Dim 假币=nothing
Dim 假币重=notknow
for i=0 to 11
ball(i)=第i只球
next
//第一层case模拟4*3的组
do case
case ball(0)+ball(1)+ball(2)+ball(3)=ball(4)+ball(5)+ball(6)+ball(7)
//第二层模拟第一次交换
do case
case ball(0)+ball(1)+ball(2)=ball(9)+ball(10)+ball(11)
//最后一层得出结论
do case
case ball(0)>ball(8)
假币=ball(8)
假币重=no
case ball(0)<ball(8)
假币=ball(8)
假币重=yes
case ball(0)+ball(1)+ball(2)>ball(9)+ball(10)+ball(11)
do case
case ball(9)=ball(10)
假币=ball(11)
假币重=no
case ball(9)>ball(10)
假币=ball(10)
假币重=no
case ball(9)<ball(10)
假币=ball(9)
假币重=yes
case ball(0)+ball(1)+ball(2)<ball(9)+ball(10)+ball(11)
.....
case ball(0)+ball(1)+ball(2)+ball(3)>ball(4)+ball(5)+ball(6)+ball(7)
......
case ball(0)+ball(1)+ball(2)+ball(3)<ball(4)+ball(5)+ball(6)+ball(7)
......
只要在case的三层嵌套中所有组合都得到了答案,这个结论就成立。
虽然我没有把所有的分支都证明过,但显然kxy是正确的。
其他人有的没看清题目,有的则思路有明显疏漏。