注: 本系列仅为个人学习笔记,学习内容为《算法小讲堂》(视频传送门),通俗易懂适合编程入门小白,需要具备python语言基础,本人小白,如内容有误感谢您的批评指正
有三对情侣要结婚,假设三位靓仔分别为 A、B、C,三位小仙女为 X、Y、Z。他们三对情侣比较皮,准备让吃瓜路小由鱼来猜!
小由鱼搞不清谁和谁结婚,所以去询问了这六位新人中的三位,得到的回答为:
A 说他要和 X 结婚
X 说她的未婚夫是 C
C 说他要和 Z 结婚
听到这样的回答后,小由鱼知道他们都是在开玩笑,说的都是假话,但他仍搞不清谁和谁结婚。
现在请编程求出到底哪位谁要和谁结婚。
依旧采用穷举法来解决该问题
设三个变量 x、y 和 z 分别表示与 X,Y,Z 结婚的靓仔。
它们可能取值都是:A,B,C
根据问题分析中我们可以推导出如下结论:
x!=‘A’ —— A 的新娘不是 X
x!=‘C’ —— 与 X 结婚的不是 C
z!=‘C’ —— C 的新娘不是 Z
x!=y ——与 X 结婚的不会与 Y 结婚
x!=z ——与 X 结婚的不会与 Z 结婚
y!=z ——与 Y 结婚的不会与 Z 结婚
那么只需要使用循环找到同时满足以上所有条件的即为正确的输出
boy = ['A','B','C']
for x in boy:
for y in boy:
for z in boy:
if x!='A'and x!='C'and z!='C'and x!=y and x!=z and y!=z:
print('X-{} Y-{} Z-{}'.format(x,y,z))
输出结果
X-B Y-C Z-A
标签:结婚,搞不清,04,boy,小由鱼,靓仔,算法,三位,趣味
From: https://blog.csdn.net/qq_44894943/article/details/136683523