在离散数学的课后作业里:某件事是甲、乙、丙、丁4人中某一个人干的,询问4人后回答如下:(1)甲说是丙干的;
(2)乙说我没干;
(3)丙说甲讲的不符合事实;
(4)丁说是甲干的。
若其中3人说的是对的、1人说的不对,问是谁干的?
首先,我们要对甲乙丙丁四个人的言论进行进一步剖析。假设j:甲干的;y:乙干的;b:丙干的;d:丁干的。
对于这个问题我们还是通过真值表的方式来找到最终的答案,我们可以利用四层循环,然后还是对四个人的话进行分析,分析结果为s1、s2、s3、s4;然后判断他们的真值来进行条件的限制,以达到符合题目的要求。
代码如下:
ls=[0,1]
for j in ls:
for y in ls:
for b in ls:
for d in ls:
s1=(b==1)
s2=(y==0)
s3=(b==0)
s4=(j==1)
if(s1+s2+s3+s4==3and j+y+b+d==1):
print("甲:{},乙:{},丙:{},丁:{}".format(j,y,b,d))
#1代表是他干的,0代表不是他干的
#结果说明是甲干的
结果如下:
希望这个有趣的问题可以对您有用,感谢您的观看!