亚信笔试智力题:真假币比重

原题:

有101个硬币,其中100个是真币,一个是假币,每个真币重量相等,但与假币重量不等。问怎么用一个没有砝码的天平称两次得出真币重还是假币重?

方案1:如下图所示

将硬币按A组(50)、B组(50)、C组(1)分组,先比较A、B两组:

   1>.若A=B,则C为假币,再用A或B中任一个与C比,C重则假币重,C轻则真币重

   2>.若A!=B,则A或B中含假币,将A组一分为二:A1(25)、A2(25),比较A1、A2:

      <1>.若A1=A2,则A为真币,故:A>B => 真币重;A<B => 假币重

      <2>.若A1!=A2,则A含假币,故:A<B => 真币重;A>B => 假币重

真假币比重方案1

方案2、如下图所示

   1、将硬币按A组(33)、B组(33)、C组(34)分组,先比较A、B两组:

   1>.若A=B,则C含假币,再用A或B中任34个与C比,C重则假币重,C轻则真币重

   2>.若A!=B,则C为真币,再用C中33个与A比较:

      <1>.若C=A,则A为真币,故:A>B => 真币重;A<B => 假币重

      <2>.若C!=A,则A含假币,故:A<B => 真币重;A>B => 假币重

真假币比重方案2

通用解决方案:分组满足A(x)、B(x)、C(101-2x),且x>25,依据以上分析均可得出正确结论。但当x=50时,即方案1最为简单。

挑战一下:期待你有更好的解决方案!

你可能感兴趣的:(算法,亚信,真假币)