离散数学:用python解决逻辑推理问题

目录

前言

一、王教授是哪里人

1.题目

2.代码实现

3.运行结果

 二、谁是班委

1.题目

2.代码实现

3.运行结果

三、谁出国学习

1.题目

2.代码实现

3.运行结果

总结


前言

离散数学(第2版)

使用python实现命题逻辑等值演算应用题。


一、王教授是哪里人

1.题目

在某次研讨会的中间休息时间,3名与会者根据王教授的口音对他是哪个省市的人判断如下:

甲:王教授不是苏州人,是上海人。
乙:王教授不是上海人,是苏州人。
丙:王教授既不是上海人,也不是杭州人。

听完这3人的判断后,王教授笑着说,你们3人中有一人说得全对,有一人说对了一半,另一人说得全不对。分析王教授到底是哪里人。(书本P25)

2.代码实现

代码如下:

# p:是苏州人 q:是上海人 r:是杭州人
ls = [0, 1]
for p in ls:
	for q in ls:
		for r in ls:
			A1 = not p and q
			A2 = (not p and not q)or(p and q)
			A3 = p and not q  # 甲的话的三种情况
			B1 = p and not q
			B2 = (p and q)or(not p and not q)
			B3 = not p and q  # 乙的话的三种情况
			C1 = not q and not r
			C2 = (not q and r)or(q and not r)
			C3 = q and r  # 丙的话的三种情况
			if ((A1 and B2 and C3) or (A1 and B3 and C2) or (A2 and B1 and C3) or\
				(A2 and B3 and C1) or (A3 and B1 and C2) or (A3 and B2 and C1)) == 1\
				and p+q+r == 1:  # 成立一项
				if p == 1:
					print('王教授是苏州人.')
				if q == 1:
					print('王教授是上海人.')
				if r 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值