美文网首页
帽子游戏分析

帽子游戏分析

作者: VincentTown | 来源:发表于2019-03-21 17:03 被阅读0次

    题目如下:

    有A、B、C三个人,每人戴一顶帽子,帽子上写有一个不为0的数,已知其中有一数为其它二数之和,每个人都可以看见其他人帽子上的数但看不到自己帽子上的数。他们都很聪明不会有失误的推理,他们所说的话均为真话并且会将当时所已经确知的事全部说出来。

    A说:“我不知我帽子上的数。”

    B说:“我不知我帽子上的数。”

    C说:“我不知我帽子上的数。”

    A说:“我不知我帽子上的数。”

    B说:“我不知我帽子上的数。”

    C说:“我不知我帽子上的数。”

    A说:“我帽子上的数是34。”

    请问:B、C帽子上的数是多少?

    n和k,n表示第几次提问时有人猜出来,k表示这个人猜出来的数。例子中n=7,k=34

    实例验证

    n=7,k=34. A=34,B=13,C=21

    n=4,k=20,有三组解B=15,C=5;B=5,C=15;B=8,C=12

    n=6,k=144,有5组解:A=108,B=36;A=36,B=108;A=32,B=112;A=64,B=80;A=54,B=90。

    初步分析:

    不妨设A上的数为x,B上的数为y,C上的数为z。

    由题目的条件可得两点信息:

    1.x!=0,y!=0,z!=0

    2.x=y+z or y=x+z or z=x+y

    我们假设发言顺序是依次发言。

      那么当我们仅从条件2推理时可知,自己的数存在两种情况:剩余两数之和或两数之差。自然我们也不能明确自己头上的数,仅当我们利于其它条件排除其中一种情况时我们就能够得出自己头上的答案。

    从最简单的三种情况开始分析

    1.A第一次就能猜出自己头上的数。

    此时A的推理如下 x=y+z or x=|y-z|  由于A为第一个发言那么,他现在知道的条件仅有条件1,那也就是说要通过条件1来排除两种的情况中的一种。显然y+z不能等于0,那么只有y-z=0 所以只有当y=z时A能知道自己的数且x=y+z.即 x=k,y=k/2,z=k/2.

    2.B第一次就能猜出自己头上的数。

    此时B的推理如下,由于A无法判断出自己头上的数那么可以得出一个条件->,y!=z。y=x+z or y=|x-z|,那也就是说b现在可通过y!=0 or y!=z 来排除自己两种情况中的一种。先通过y!=0,同上->x=z,y=k,x=z=k/2。假设y=z,由于x+z不可能等于z所以只有|x-z|=z,可以得出x=2z,又因为y!=z所有y=x+z &&y=k,x=2k/3,z=k/3.

    3.C第一次就能猜出自己头上得数。

      此时C的推理如下,由于A,B无法判断自己头上的数我们可以得出,z!=0 && y!=z && x!=z && x!=2z,同理c现在可以通过这四个条件来排除自己的两种情况中的一种。z=x+y || z=|x-y|                                                            1.不满足z!=0时,z=k,x=y=k/2.                                                                                                                            2.不满足y!=z时,|x-y|=y ->x=2y,z=k,x=2k/3,y=k/3.                                                                                            3.不满足x!=z时,|x-y|=x ->y=2x,z=k,x=k/3,y=2k/3,                                                                                            4.不满足x!=2z时,2|x-y|=x  ->y=x/2,x=2k/3,y=k/3;  ->x=3x/2  x=2k/5,y=3k/5,z=k

    算法在构造方程组时要利用行列式来解方程。

    相关文章

      网友评论

          本文标题:帽子游戏分析

          本文链接:https://www.haomeiwen.com/subject/wivqvqtx.html