用BASIC语言解决逻辑推理题目
解决这个问题时,关键在于对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就是凶手!
掌握这种分析方法,你还可以解决更复杂的推理问题,你的电脑就会成为一位“推理专家”!