12小球称重问题_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > 12小球称重问题

12小球称重问题

 2013/10/24 2:53:05  寻影  博客园  我要评论(0)
  • 摘要:今天上多元统计分析,听不懂啊有木有,不想听啊有木有!我想肯定是我昨天没吃饱的原因,或者是老师太不关注我了!于是回想起前几天在某个群里看到有人问问题,问题是这样的:12个小球,其中有个球不知轻重,但是很气愤的是要你只能比较三次找出那个该死的小球!only3次!--------于是冒着被老师关注的危险,低头不语,pleaselookat下面:----------总体分析:因为不确定球的重或轻,最终会有24种情况,但是规定只能3次比较,所以必须目的性的选择;把虾球分三部分,分别编号,且分成三组:
  • 标签:问题

  今天上多元统计分析,听不懂啊有木有,不想听啊有木有!我想肯定是我昨天没吃饱的原因,或者是老师太不关注我了!于是回想起前几天在某个群里看到有人问问题

问题是这样的:12个小球,其中有个球不知轻重,但是很气愤的是要你只能比较三次找出那个该死的小球!only 3次!

--------于是冒着被老师关注的危险,低头不语,please  look at 下面:----------

class="p0">总体分析:

因为不确定球的重或轻,最终会有24种情况,但是规定只能3次比较,所以必须目的性的选择;

把虾球分三部分,分别编号,且分成三组:(1 2 3 4)  ( 5 6 7 8)  (9 10 11 12)

  

第一次选择:5678   +  9 10 11 12:

 

  1 .   If(5678==9 10 11 12)

 

If(5678==9 10 11 12)

    : 目标球在1234中,其他正常,可以加以利用比较;

  第二次选择 : 12   +  3 正常(状态T:3个目标球+正常)

      ----为什么只能选择12+3
    If(
1 2==3 正)         :目标球为4;         第三次选择:4和正            if(4>正常) :-------------------------------4 重;      if(4<正常) :-------------------------------4 轻:
    If(
1 2 > 3 正)         :目标球为123,且暂时有 1.2重 或3 轻         第三次选择:1和2               If(1>2) :1重2轻 与上一次结果进行交集               :-----------------------------------1 重;    If(1<2) :1轻2重 交集比较 :-----------------------------------2 重;            If(1 = 2) :目标球在3,因为3已经确定为轻:                :-----------------------------------3 轻;
    If(
1 2 < 3 正)         :目标球为123,且暂时有 1.2轻 或3 重         第三次选择:1和2            If(1>2) :1重2轻 与上一次结果进行交集                 :----------------------------------2 轻;   If(1<2) :1轻2重 交集比较    :----------------------------------1 轻;            If(1 = 2) :目标球在3,因为3已经确定为重:                :----------------------------------3 重;

 

 

 2   If( 5678 > 9 10 11 12)

  If( 5678  > 9 10 11 12)
        :目标球为5
--12;5678重,9 10 11 12轻,其他正常
    第二次选择:
5 6 9 正 + 7 10 正正;
       ----为什么???次数限制,避免子现象
      If(569正
==7 10正正)
          :目标球在
8 11 12,且由上知:8重,11 12
          :(出现状态T:3个目标球
+正常,且已经比较好了)
          第三次选择:
11+12
            If(
11>12) :11重12轻 与上一次结果进行交集
                 :
------------------------------12 轻;
   If(
11<12) :11轻12重 交集比较
    :
------------------------------11 轻;
            If(
11 = 12) :目标球在8,因为8已经确定为重:
                 :
--------------------------------8 重;

      If(569正
> 7 10正正):
          知:569重,
7 10轻,
          又因为:5678重,
9 10 11 12轻,其他正常
          前后两次异同则矛盾,推翻假设,则为正常;
          :目标球为5
6 10,且56重,10轻;排除7 9
          (出现状态T:3个目标球
+正常,且已经比较)
          第三次选择:5和6        
             If(
5>6) :5重6轻 与上一次结果进行交集
                  :
-------------------------------5 重;
   If(
5<6 :5轻6重 交集比较
   :
-------------------------------6 重;
             If(
5 = 6) :目标球在10,且10轻
                  :
------------------------------10 轻;

      If(569正
< 7 10正正):
          知:569轻,
7 10重,
          又因为:5678重,
9 10 11 12轻,其他正常
          排除;
5 6 10,则有 7重,9轻
   第三次选择:9和正
  
if(9=正常) :----------------------------7 重;
if(9<正常) :----------------------------9 轻:

 

 

  3.  If( 5678 < 9 10 11 12)    以下就是 2 的反例,only change 重轻:

  If( 5678  < 9 10 11 12)


      :目标球为5--12;5678轻,9 10 11 12重,其他正常


  第二次选择:5 6 9 正 + 7 10 正正;


      ----为什么???避免子现象


    If(569正==7 10正正)


      :目标球在 8 11 12,且由上知:8轻,11 12 重


      (出现状态T:3个目标球+正常,且已经比较好,知其轻重)


      第三次选择:11+12


          If(11>12) :11重12轻 与上一次结果进行交集


                :-------------------------------11 重;


                If(11<12) :11轻12重 交集比较


                          :-------------------------------12 重;


          If(11 = 12) :目标球在8,因为8已经确定为重:


                :--------------------------------8 轻;
    If(569正
< 7 10正正):         知:569轻,7 10重,         又因为:5678轻,9 10 11 12重,其他正常         前后两次异同则矛盾,推翻假设,则为正常;         :目标球为5 6 10,且56轻,10重;排除7 9;         :出现状态T:3个目标球+正常,且已经比较)         第三次选择:5和6             If(5>6) :5重6轻 与上一次结果进行交集                   :-------------------------------6 轻;   If(5<6) :5轻6重 交集比较 :-------------------------------5 轻;             If(5 = 6) :目标球在10,且10重                   :-----------------------------10 重;       If(569正 > 7 10正正):           知:569重,7 10轻,           又因为:5678轻,9 10 11 12重,其他正常           排除;5 6 10,则有 7轻,9重           第三次选择:9和正              if(9=正常) :----------------------------7 轻;       if(9>正常) :---------------------------9 重:

 

 

根据上面的情况的分类,可以归为两个原则:

  1. 根据上一次的结果来 比较(交集),以假设矛盾后排除,从而来确定目标球的数目以及轻重;
  2. 选择球的时候尽量避免会出现上一次的子现象;

 

 

 

发表评论
用户名: 匿名