逻辑推理题的Python 求解法

2023-11-18 07:57尹鹏飞曹发生
贵州工程应用技术学院学报 2023年4期
关键词:真值表演绎推理低阶

尹鹏飞,曹发生

(贵州民族大学文学院,贵州 贵阳 550025)

蔡曙山指出认知科学是心理学、计算机科学、哲学、人类学、神经科学、语言学和教育学等的交叉融合。他提出人类认知五层级理论,形成一个认知序列:神经认知—心理认知—语言认知—思维认知—文化认知。低阶认知包括神经认知和心理认知,高阶认知则是从语言认知到思维认知,最终再到文化认知;低阶认知是高阶认知的基础,高阶认知向下包含并影响低阶认知:即神经认知和心理认知是语言认知、思维认知、文化认知作用生成的基础,而语言认知、思维认知、文化认知在作用过程中又向下包含并影响着神经认知和心理认知。[1][2][3]2006 年,美国卡内基·梅隆大学的周以真(Jeannette M.Wing)教授在文中[4]指出计算思维是实现人工智能的重要途径,而计算思维可以通过Python 语言来实现。Java 大师Bruce Eckel 和Python 之父Guido van Rossum 留下一句名言“Life is short,you need Python”,即人生苦短,我用Python。自20 世纪90 年代初面世的Python 语言近两年连续赢得了久负盛名的TIOBE 编程语言奖,在被该奖项授予一年内就获得最高使用率增长的编程语言。①Python 语言程序设计已经进入浙江省等地区的中学教材,并且列入高考内容,正是因为python 语言作为一种解释类型的计算机程序设计语言,在一定程度上不仅具有简单易学的特点,使得中学生也可以较快地习得这项技能,大大增强解决问题的能力,锻炼自己的逻辑思维,提升自己的逻辑思维能力;而且它的功能齐全完备,几乎可以实现大多数我们所涉及的学习领域,应用极其广泛。Python语言是最接近自然语言的程序设计语言[5],非常有利于培养计算思维,更有利于解决一些计算问题。Python 语言适合更多普通人解决一般的计算问题,相比其他语言具有更多的适用人群。在此背景下,本文以Python 程序进行设计解答一道典型的逻辑推理题,从而可以看到Python语言帮助解决具体计算问题的作用。

一、逻辑推理

在逻辑学中,逻辑推理作为思维运作的一种基本形式,是从一个或一些已知判断推出新判断的思维形式,有类比推理、归纳推理、溯因推理和演绎推理四种推理类型。在逻辑推理题的应用中,逻辑推理以类比推理和演绎推理形式最为常见。本质以逻辑推理关系为主的类比推理,既有两项式,也有三项式,可分为全同、全异、相交、包含和包含于、条件等各种逻辑对应形式,比如行政职业能力测验中经常出现的“纽约:中国;金属:钥匙;棉花:棉线:棉鞋”等一系列类比逻辑推理考题。此外,还有演绎推理,演绎推理题大致分为三种形式,分别为三段论、选言推理和假言推理。其中,三段论逻辑推理题主要以四种基本结构呈现:“所有A 是B,所有B是C→所有B是C”;所有A 是B,所有B非C→所有A非C;有些A 是B,所有B是C→有些A是C;有些A 是B,所有B非C→有些A非C。选言逻辑推理题的基本形式有相容(A 或B)和不相容(要么A 要么B)两类,其中“A 或B”的逻辑推理关系有:“A 或B”为假→A 假且B假,“A或B”为真→至少一个为真,也可同真;“要么A要么B”的逻辑推理关系有:“要么A要么B”为假→A 和B 同真/A 和B 同假,“要么A 要么B”为真→A 真B 假/A 假B 真。而假言逻辑推理题的形式呈现有两种,其一为充分条件假言逻辑推理,如肯定前件式:如果p,那么q,已知p,所以q;否定后件式:如果p,那么q,非q,所以非p。其二为必要条件假言逻辑推理,如否定前件式:只有p,才q,非p,所以,非q;肯定前件式:只有p,才q,已知q,所以p。

随着社会发展对人类思维进步的高标准和高要求,逻辑推理也受到越来越多的关注和学习,大量的逻辑推理题也因此高频率地出现在国家公务员、事业单位考试以及央国企等等大型招聘考试中,作为职业能力测验中的一个重要环节,其目的就是因为逻辑推理能够锻炼大脑思维的缜密度,提高人的思维能力,进而能够更高效率地选拔出高思维素质人才,以更好地应对、解决日后工作遇到的难题。

如在《科技导报》2009年10期有这样一道逻辑推理题:刑侦大队的六名探员被派出执行任务,且要求如下:

那该派谁去执行任务?

二、Python程序实现

在人工智能飞速发展的大背景下,Python 程序得到越来越多人的青睐,无论是在工作中、生活中还是在学习中,都可以看到python 的身影,使用灵活,广泛应用于多种行业和领域中,为人们带来了高效率。

在正常情况下,利用真值表法能解决几乎所有的未知命题,如信息真假但已知有几个真假的情况下决策的问题,只是有时真值表要牵涉到的变元太多而显得有些复杂。但是如果用Python程序语言来实现时,有限个变元对于Python程序来说非常简单。所以接下来我们用Python语言设计出程序来实现这个选派方案。首先将选派6 个人的结果情况描述为6 位二进制中的数字,即是从0 到63 中的一个数字。具体程序如下:

对6 名嫌疑人进行分析后得出如下真命题:(1)A、B 至少有1人犯罪;(2)A、E、F,3人中至少有2人犯罪;(3)A、D不可能同时犯罪;(4)B、C或者同时犯罪,或者与本案无关;(5)C、D中有且仅有1人犯罪;(6)如果D没犯罪,则E也不可能犯罪。请问哪些人是罪犯?

下面给出用Python 语言实现这个推理。Python 的版本采用3.6 以上版本编译运行。这个给出两套按枚举式搜索的源程序代码,经过26步重复执行,运行后的结果都得出ABCF犯罪。

可以用下面命名为1.py的源程序来实现。

三、结束语

本文给出逻辑推理题的数理逻辑解答和Python语言程序的解答,以希望Python初学者能看懂并且能解答逻辑推理题。如果逻辑推理题中含有多个命题变元,人脑在利用真值表方法时候可能会在真值表的计算上会出错,而如果利用Python 语言程序来解答就不会出现这样的现象,计算机程序最明显的优势在于反复执行若干次操作而不会出现人脑的疲惫现象。

注 释:

①https://www.tiobe.com/tiobe-index/。

猜你喜欢
真值表演绎推理低阶
山西低阶煤分布特征分析和开发利用前景
《离散数学》中二元关系传递性的判定
一类具低阶项和退化强制的椭圆方程的有界弱解
Extended Fisher-Kolmogorov方程的一类低阶非协调混合有限元方法
合情推理与演绎推理
培养学生演绎推理能力的高中地理教学
飞机燃油测量系统设计误差影响分析
国内外低阶煤煤层气开发现状和我国开发潜力研究
基于Visio的量子电路矢量图自动绘制
2014.3新高考高二数学配送练习参考答案“推理与证明、复数”测试卷