原文:https://blog.csdn.net/yunzifengqing/article/details/81941592

问题描述:有6名犯罪嫌疑人A、B、C、D、E、F,已知如下事实:

A、B至少有1人作案;
A、E、F三人中至少有2人参与作案;
A、D不可能是同案犯;
B、C或同时作案,或与本案无关;

C、D中有且仅有1人作案;
如果D没有参与作案,则E也不可能参与作案。请推理出谁作了案。

下面是人工逻辑推理:

假设1:A参与作案,则
B可能参与作案(A、B至少有1人作案);
E、F至少有1人参与作案(A、E、F三人中至少有2人参与作案);
D未参与作案(A、D不可能是同案犯);
C参与作案(C、D中有且仅有1人作案);
B参与作案(B、C或同时作案,或与本案无关);
E未参与作案(如果D没有参与作案,则E也不可能参与作案);
F参与作案(A、E、F三人中至少有2人参与作案),结果:A、B、C、F参与作案,D、E未参与作案。

假设2:A未参与作案,则
B参与作案(A、B至少有1人作案);
E、F参与作案(A、E、F三人中至少有2人参与作案);
C参与作案(B、C或同时作案,或与本案无关);
D未参与作案(C、D中有且仅有1人作案);
E未参与作案(如果D没有参与作案,则E也不可能参与作案);
E既参与作案又未参与作案,出现矛盾,假设不成立;

下面是用Python处理的解题思路:用枚举法遍历所有可能出现的罪犯组合,挑选出符合条件的。
suspects = ['A', 'B', 'C', 'D', 'E', 'F']criminal_dict = {0: 'innocent', 1: 'guilty'}n = 1


for a in range(0, 2):
for b in range(0,2):
for c in range(0,2):
for d in range(0,2):
for e in range(0,2):
for f in range(0,2):
if (a + b >= 1) and (a + e + f >= 2) and (a * d == 0) and (b != c) and (c + d == 1) and (d >= e):
result = zip(suspects, [criminal_dict[a], criminal_dict[b], criminal_dict[c], criminal_dict[d], criminal_dict[e], criminal_dict[f]])
                 #print(a,b,c,d,e,f)
                 print ("第%d种作案方案:" %(n))
                 print(list(result))
                 n = n + 1
print("总共有%d种作案方案" %(n-1))

  

最新文章

  1. ortp库入门
  2. Linux内核模块简介
  3. COJ980 WZJ的数据结构(负二十)
  4. zoj 2112 动态区间求第k大
  5. 【转】shell 教程——05 第一个Shell脚本
  6. Flash, Flex, Air, Flashplayer之间的相互关系是什么?
  7. [linux]查看机器有几个cpu,是否支持64位
  8. BNU Online Judge-34978-汉诺塔
  9. Docker打包 Asp.Net Core应用,在CentOS上运行
  10. REST风格下如何放行静态资源
  11. python - 文件系统和文件
  12. java集合类List
  13. 火狐浏览器高度&制作简单万年历&弹出层
  14. vi/vim 命令速查手册
  15. SpringBoot四大神器之Starter
  16. window10上安装python+CUDA+CuDNN+TensorFlow
  17. ubuntu上安装systemtap
  18. [Java.web]Web应用结构
  19. 十四、css动画基础知识
  20. 黑盒测试实践-任务进度-Day02

热门文章

  1. Winform运行外部控制台程序,并在程序结束后执行其他动作
  2. linux如何绑定域名和ip?
  3. 实验吧中围在栅栏中的爱-------writeup
  4. js-xlsx
  5. [Python]统计1个元素在列表中的出现次数
  6. mysql大量locked的一个案例
  7. Java泛型(8):自限定&参数协变
  8. C语言递归之对称二叉树
  9. mongodb base
  10. 获得http请求的RequestID