首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

称球解决办法

2013-01-08 
称球12个球中有一个坏球(质量轻),最少可以用2次称出哪个球是坏球。如果12个球中有2个坏球至少几次才能称出2

称球
12个球中有一个坏球(质量轻),最少可以用2次称出哪个球是坏球。如果12个球中有2个坏球至少几次才能称出2个坏球。
[解决办法]
这个题非常难,以前曾琢磨过一段时间。下界是3^k >= C(12,2) * 4 => 3^k > 264 => k >= 6,凭感觉6次或许可以出,但如何称就不知道了。

引用:
补充一下,只有天平(有三种状态,左倾、右倾、平衡)。

[解决办法]
按照lz的说法,将坏球标记为0,好球标记为1

如果12个球分2堆,可能造成011111与011111的情况,所以就是白称了,不做讨论

1) 先看分成3堆都是4个球的情况,可能的情况有:

a)0011 1111 1111
b)0111 0111 1111

取两组称,最坏情况为等重,此时需要取其中一个和剩下的比较来确定0所在的组,以及具体是a还是b,已经称了2次

若是情况a,然后再分两堆,最坏情况是01和01,那么每堆需要再各自称一次于是总次数为5

若是情况b,对于每堆0111,分两堆必定为01和11,于是可以确定01,再称一次可以称出0,于是总次数为2+2*2=6次

2)再看分成4堆3个球,可能的情况有:

a)001 111 111 111
b)011 011 111 111

分两组称,若一组等重一组不等则为情况a,两组均等和两组均不等为情况b

情况a,只要取001其中2个球称一次便可知道两个坏球,于是总次数3次

情况b首先需要多加一次来确定那组等重的是包含坏球的,之后每组011取其中两球称1次即可(道理同情况a),于是总次数为3+1*2=5次

总结:若只看以上情况,至少5次= =
[解决办法]
12个球中有一个坏球(质量轻),最少可以用2次称出哪个球是坏球
这个你怎么称?1次3,2次9,3次27,2次12显然不行
如果有两个坏球且轻相等质量,一共66种可能,大概需要4次
如果轻但不等重,大概就麻烦很多,因为平的情况要少的多,因此3分不行,大概需要6次
只能先一边2个,如果平,剩余8个取2个放左边,右边1个+1个好球,如果平,剩余5个,取2个称一次,如果平,剩余3球2球坏球,2次即可,
前边如果有不平,情况稍微复杂些,不过应该可以称出

[解决办法]
当球分为2堆时:
有 a)011111 011111
   b)001111 111111;用1次可以测出是那种情况:
   如果是a情况的时候,两个小堆中每个小堆小队可以用2次(再次分为2小堆和3小堆的结果一样)找出轻球,所以当是a情况时,用1+2*2=5次找出请求;
  如果是b情况时,分为2个小堆有
      A)001 111 
      B)011 011两种小情况,
      再用1次可以分出是哪个情况,为A情况时,用1次可以找出是哪两个是轻球,B情况的时候,要用2次找出轻球,所以b情况所用次数为
        
[解决办法]
- A==>1+1+1=3    次
      b-
[解决办法]

        
[解决办法]
- B==>1+1+2=4    次
所以当球分为2堆的时候最多用5次找出2个轻球。



楼主:12个球中有一个坏球(质量轻),最少可以用2次称出哪个球是坏球。这个是怎么测的?

热点排行