微信公众号 
图码生活

每天发布有五花八门的文章,各种有趣的知识等,期待您的订阅与参与
电脑报 1992-2001 十年文章全集
电脑报 1992-2001 十年文章全集
包含从 1992 年 - 2001 年间,两万余篇期刊文章,查询最少输入两个字符
随便看看
读取中
读取中
标题用BASIC语言解决逻辑推理题目
栏目软件操作与技巧
作者蒲小勤
发布1994-01-14
  某地发生了一件凶杀案,凶手是A、B、C、D、E、F6人中之一.L说:凶手非A即B;M说:凶手绝不是C;N说:案发时A、B正在他家。已知L、M、N三人只有一人说对,请问谁是凶手?
  解决这个问题时,关键在于对L、M、N三人的话进行分析,所以应对L、M、N三人的话建立逻辑表达式,然后用穷举法找出符合要求的情况。
  这里逻辑值为真。用-1表示,假用0表示。假设某人是凶手为-1;不是凶手为0,现在可以列出L、M、N三人的逻辑表达式:L=(A=-1AND B=0) OR(A=0 AND B=-1)
  M=(C=0)
  N=(A=0 ANDB=0)
  另外,用L+M+N=-1表示三人中只有一人说对,用A+B+C+D+E+F=-1表示6人中只有一人是凶手。程序如下:
  10 FOR A=-1 TO 0
  20 FOR B=-1 TO 0
  30 FOR C=-1 TO 0
  40 FOR D=-1 TO 0
  50 FOR E=-1 TO 0
  60 FOR F=-1 TO 0
  70 L=(A=-1 AND B=0) OR (A=0 AND B=-1)
  80 M=(C=0)
  90 N=(A=0 AND B=0)
  95 IF L+M+N=-1 AND A+B+C+D+E+F=-1 THEN PRINT :PRINT "A";"B";"C";"D";"E";"F":PRINT A;B;C;D;E;F
  100 NEXT F
  110 NEXT E
  120 NEXT D
  130 NEXT C
  140 NEXT B
  150 NEXT A
  160 END
  运行结果:A B C D E F
  0 0-1 0 0 0
  可见,C就是凶手!
  掌握这种分析方法,你还可以解决更复杂的推理问题,你的电脑就会成为一位“推理专家”!