12金币

  • git地址:https://github.com/944613709/HIT-Data-Structures-and-Algorithms

  • 12金币

    问题:给出12个硬币,其中一个是假硬币,用一个天平来确定三种重量的假币(其中假币可能比其他硬币轻或重)。问:至少称量多少次能够保证判断出:是否假币,而且如果有,确定假币是哪一颗,

    算法思想:

    首先将金币分成三份,然后取出前面两份进行比较,第一次比较之后能够缩小假币的范围以及能够确定某些一定是真币,第二次就可以缩小范围以及利用已经确定是真币的去进行比较,第二次比较之后能够进一步缩小范围,第三次再次利用小范围可能的假币和已知的真币的信息进行比较,从而确定假币

    算法步骤:

    \1. 分为三份A 1,2,3,4 B 5,6,7,8, C 9,10,11,12

    (1) A=B -》A和B全真,假币在C

    ① 分为D 1,9 E 10,11

    \1) D=E ——》可能情况:12L12H

    a. 1>12 12L

    b. 1<12 12H

    \2) D>E ——》可能情况:9H11L10L

    a. 10=11 9H

    b. 10>11 11L

    c. 10<11 10L

    \3) D<E ——》可能情况:9L10H11H

    a. 10=11 9L

    b. 10>11 10H

    c. 10<11 11H

    (2) A>B——》 C全真

    ① 分为F 1,2,3,5,6 G 4,9,10,11,12

    \1) F=G——》可能情况:8L7L

    a. 7>8 8L

    b. 7<8 7L

    \2) F>G——》可能情况:3H1H2H

    a. 1=2 3H

    b. 1>2 1H

    c. 1<2 2H

    \3) F<G——》可能情况:4H6L5L

    a. 5=6 4H

    b. 5>6 6L

    c. 5<6 5L

    (3) A<B——》C全真

    ① 分为 H 1,2,3,5,6, I 4,9,10,11,12

    \1) H=I——》可能情况:7H8H

    a. 7>8 7H

    b. 7<8 8H

    \2) H>I——》可能情况:4L5H6H

    a. 5=6 4L

    b. 5>6 5H

    c. 5<6 6H

    \3) H<I——》可能情况:3L2L1L

    a. 1=2 3L

    b. 1>2 2L

    c. 1<2 1L

    判定树图

    12金币

    扫描全能王 2021-11-17 21.43_2


12金币
http://yoursite.com/2023/05/16/12金币/
作者
Fars
发布于
2023年5月16日
许可协议