算法学习-天平与假币

来源:互联网 发布:制作婚礼照片软件 编辑:程序博客网 时间:2024/05/24 06:52

题目

有12枚硬币,其中有且只有1枚是假币,但不知道是重还是轻。现给定一架没有发吗的天平,问至少需要多少次称量才能确保找到这枚假币?

进一步思考:如何证明某个方案是最少次数?

分析

随机将12枚硬币等分成3分,每份4枚,标机为A、B、C三份。

将A放于左侧,B放于右侧,用天平称量A和B,分三种情况:

  1. 天平平衡
  2. A(左)比B(右)重
  3. A(左)比B(右)轻,与2对称,只分析2即可
天平平衡说明A、B中没有假币,假币在C中,将C中的4枚编号为甲乙丙丁。取甲乙用天平称量,若平衡,说明甲乙是振臂,丙丁有一枚是假币。取加冰用天平称量,若不平衡,说明丙是假币;若平衡,说明丙是真币,丁是假币。

A比B重,说明假币必然在A、B中,C中的4枚都是真币。将A中4枚硬币编号为1234,B中编号为5678,C中编号为甲乙丙丁。选125放于左侧,34甲放于右侧;天平有山中情况:1、天平平衡,说明678含假币,且假币轻。2、125比34甲重,说明12含假币,且假币重,因为5和34是移动过的硬币,而且没有改变天平,所以定是真币,同理678也是真币,甲就不用说了,所以12是假币且假币重。3、125比34甲轻,说明34含假币,且假币重,或者5是假币,且假币轻。无论如何,最多再一次称量即可找到假币。

进一步思考有点难以理解。。。

1 0
原创粉丝点击