算法-经典趣题-新郎和新娘
本文为joshua317原创文章,转载请注明:转载自joshua317博客 https://www.joshua317.com/article/157
一、问题
新郎和新娘问题是非常典型的智力推理问题。
新郎和新娘问题的大意如下:
有三对新郎和新娘参加集体婚礼,三个新郞为A、B、C,三个新娘为X、Y、Z。主持婚礼的人一时间忘了谁应该和谁结婚。于是,他便问参加婚礼的6个人中的三个,得到的回答如下:
新郎A说他将和新娘X结婚;
新娘X说她将和新郎C结婚;
新郎C说她将和新娘Z结婚。
聪明的主持人知道他们在与他开玩笑,但是,此时主持人已经推算出了谁应该和谁结婚。那么,到底是谁应该和谁结婚呢?
二、分析
我们来分析下问题,三个新郎和三个新娘随机结婚的话,共有6种可能,根据前面所述的3个错误条,便可以采用穷尽法来逐个对照,直到找到正确的结婚对象。
现在我们将A、B、C这3人分别用 1、2、3 表示,将X和A结婚表示为"X=1",将X与C结婚表示为"X=3",将C与Z结婚表示为"Z=3"。按照题目中的叙述可以写出表达式:
-
X!=1 A不与X结婚
-
X!=3 X不与C结婚
-
Z!=3 C不与Z结婚
题意还隐含着X、Y、Z这3个新娘不能结为配偶,则有:X!=Y 且X!=Z且Y!=Z,穷举以上所有可能的情况,代入上述表达式中进行推理运算,若假设的情况使上述表达式的结果均为真,则假设情况就是正确的结果。
三、编程
本文为joshua317原创文章,转载请注明:转载自joshua317博客 https://www.joshua317.com/article/157