第21讲 小练习之后谁在说谎(和猫妹学Python)

小朋友们好,大朋友们好!

不知不觉,我们已经学了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

标签:供词   证词   表达式   建模   嫌疑人   小偷   难题   大人   警察   计算机

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2008-2024 All Rights Reserved. Powered By bs178.com 闽ICP备11008920号-3
闽公网安备35020302034844号

Top