小朋友们好,大朋友们好!
不知不觉,我们已经学了20讲了。
加油,每天努力一点点,一年将会进步很多。
今天我们做一个综合小练习,用Python解决一道难题。
计算机编程的重点是什么
谁在撒谎
警察局抓了ABCD四名小偷嫌疑人,其中有一人是真正的小偷,审讯时,他们的
供词是这样的:
A:警察大人,我不是小偷
B:警察大人,C才是小偷
C:警察大人,D才是小偷
D:警察大人,C在胡说八道,冤枉好人
已知,三人说了真话,一人说了假话,到底谁是小偷?
这就是一道生活中的难题,我们需要做的就是,把它转换为计算机可以编程解决
的问题,专业术语叫抽象建模。
我们假定x为小偷,ABCD依次为1234,那么x取值可能为1~4。
我们进一步分析:
也就是说x可以取得值是1、2、3、4,当取某个值时满足下面四个表达式中的三个真一个假:
x!=1,x=3,x=4,x!=4
知道该怎么解决了吗?
x=1时,统计下四个表达式,看是否满足三真一假
x=2时,统计下四个表达式,看是否满足三真一假
x=3时,统计下四个表达式,看是否满足三真一假
x=4时,统计下四个表达式,看是否满足三真一假
他在撒谎
有了上述的建模分析,你可以把程序编写出了吗?
如果还没想出来,看下下边流程图:
代码如下:
#还记得for循环吗?此处range(1,5,1)表示取值范围为1、2、3、4,依次取出嫌疑人的证词做判断
for x in range(1,5,1):
#如果四人的证词满足三真一假,那么证词链相互认证,小偷现身
if (x!=1) + (x==3) + (x==4) + (x!=4) == 3:
print('小偷是',x)
好了,今天的学习就到这里!
我们下次见!
页面更新:2024-04-14
本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828
© CopyRight 2008-2024 All Rights Reserved. Powered By bs178.com 闽ICP备11008920号-3
闽公网安备35020302034844号