12球称重问题

 
12球称重问题
有十二个乒乓球特征相同,其中只有一个重量异常,现在要求用一部没有砝码的天平称三次,将那个重量异常的球找出来。
先将乒乓球分成三组:A、B、C。
A                 B      C
A1,A2,A3,A4      B1      B2      B3      B4      C1      C2      C3      C4
1.      先是ABC三组中任意两大组称量:
结果:以A与B称量为例
a:AB平衡,则C组中有异常球。
取C1与C2称量,结果:
(1)      平衡,则坏球在C3、C4中,则取C3与C1称量,若平衡,则C4是坏球,如果失衡,则C3是坏球。
(2)      不平衡,则C1、C2中有坏球,取C1与C3称量,若平衡,则C2是坏球,如果失衡,则C1是坏球。
     
b:AB失衡(关键),则C组都为正常球。
     先定A组(左盘)重,则取(A1,B1,C1)与(A2,A3,B2)称量
(1)      平衡,则坏球在A4,B3,B4中有坏球。则A4要么是好球,要么比好球重;B3,B4要么是好球,要么比好球轻。
则称第三次,取B3与B4,平衡则A4是坏球,如果不平衡,则轻球是坏球。
(2)      失衡,则再次假设(A1,B1,C1)比(A2,A3,B2)重,则A1,B2是坏球(注:首先有么A组中全正常,要么有重球;B组中要么正常,要么有轻球。仍然是左边重于右边,所以坏球必然在没有经过换位置的A1与B2中)。则第三次,取A1与C1称量,平衡,则B2是坏球;如果A1重,则A1是坏球。
而如果右边重于左边,则必然是经过换位置的B1,A2,A3中有坏球,B1要么是好球,要么轻于好球;A2,A3要么是好球,要么重于好球。则第三次用A2,A3称量,平衡,则B1是坏球,如果失衡,则重的是坏球。
     如果B组(右盘)重,则可以用上述方法类推。

///*******************************************

在12个小球中有一个和其他不同(或轻或重),现在先拿起笔,记下哪个球重或者轻,然后继续下面的游戏<br><br><br>
<select name=one></select>
<select name=two></select>
<select name=three></select>
<select name=four></select>

<script>
var arrSel=["one","two","three","four"];//arrSel定义了要修改的下拉框
var i=0,arrData=[];//arrData中搁的是数据,每条都显示各级的数据
arrData[i++]=["(1,2,3,4)比(5,6,7,8)","请先做前面的选择","请先做前面的选择","请先做前面的选择"]
arrData[i++]=["重","(1,2,5)比(3,6,9)","请先做前面的选择","请先做前面的选择"]
arrData[i++]=["重","重","(1)比(2)","请先做前面的选择"]
arrData[i++]=["重","重","重","1球比较重"]
arrData[i++]=["重","重","平","6球比较轻"]
arrData[i++]=["重","重","轻","2球比较重"]
arrData[i++]=["重","平","(7)比(8)","请先做前面的选择"]
arrData[i++]=["重","平","重","8球比较轻"]
arrData[i++]=["重","平","平","4球比较重"]
arrData[i++]=["重","平","轻","7球比较轻"]
arrData[i++]=["重","轻","(1)比(3)","请先做前面的选择"]
arrData[i++]=["重","轻","重","无解"]
arrData[i++]=["重","轻","平","5球比较轻"]
arrData[i++]=["重","轻","轻","3球比较重"]
arrData[i++]=["平","(9,10)比(1,11)","请先做前面的选择","请先做前面的选择"]
arrData[i++]=["平","重","(9)比(11)","请先做前面的选择"]
arrData[i++]=["平","重","重","9球比较重"]
arrData[i++]=["平","重","平","11球比较轻"]
arrData[i++]=["平","重","轻","10球比较重"]
arrData[i++]=["平","平","(1)比(12)","请先做前面的选择"]
arrData[i++]=["平","平","重","12球比较轻"]
arrData[i++]=["平","平","平","无解"]
arrData[i++]=["平","平","轻","12球比较重"]
arrData[i++]=["平","轻","(9)比(10)","请先做前面的选择"]
arrData[i++]=["平","轻","重","9球比较轻"]
arrData[i++]=["平","轻","平","11球比较重"]
arrData[i++]=["平","轻","轻","10球比较轻"]
arrData[i++]=["轻","(1,2,5)比(3,6,9)","请先做前面的选择","请先做前面的选择"]
arrData[i++]=["轻","重","(1)比(3)","请先做前面的选择"]
arrData[i++]=["轻","重","重","3球比较轻"]
arrData[i++]=["轻","重","平","5球比较重"]
arrData[i++]=["轻","重","轻","无解"]
arrData[i++]=["轻","平","(7)比(8)","请先做前面的选择"]
arrData[i++]=["轻","平","重","7球比较重"]
arrData[i++]=["轻","平","平","4球比较轻"]
arrData[i++]=["轻","平","轻","8球比较重"]
arrData[i++]=["轻","轻","(1)比(2)","请先做前面的选择"]
arrData[i++]=["轻","轻","重","2球比较轻"]
arrData[i++]=["轻","轻","平","6球比较重"]
arrData[i++]=["轻","轻","轻","1球比较轻"]
</script>
<script>
function qswhInit(num){
/******* by qiushuiwuhen(2002-5-15) ********/
 var i,j,arrTemp=[];
 for(i=0;i<num;i++)arrTemp[i]=document.all(arrSel[i]).options[document.all(arrSel[i]).selectedIndex].text
 if(num==arrSel.length){//这里处理最后的数据。
  return;
 }
 with(document.all(arrSel[num])){
  length=0
  for(i=0;i<arrData.length;i++){  
   for(j=0;j<num;j++)if(arrTemp[j]!=arrData[i][j])break;
   if(j!=num)continue;
   if(length==0||options[length-1].text!=arrData[i][num])
   options[length++].text=arrData[i][num];
  }
  οnchange=new Function("qswhInit("+(num+1)+")");
  onchange();
 }
}
qswhInit(0);//初始化
</script>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值