逻辑命题公式计算
逻辑学公式
2.负命题的等值推理(命题)(1)联言命题的负命题:⌝(p ∧ q)↔⌝ p ∨⌝ q(2)相容选言命题的负命题:⌝(p ∨ q)↔⌝ p ∧⌝ q(3)不相容选言命题的负命题:⌝(p ∨q)↔(p ∧ q)∨(⌝ p ∧⌝ q)(4)充分条件假言命题的负命题:⌝(p → q)↔ p ∧⌝ q(5)必要条件假言命题的负命题:⌝(p ← q)↔⌝ p ∧ q(6)充分必要条件假言命题的负命题:⌝(p ↔ q)↔(p ∧⌝ q)∨(⌝ p ∧ q)(7)负命题的负命题:⌝(⌝ p)↔ p3,命题推理的有效式(1).联言推理1)联言推理分解式:p ∧ q → p 或p ∧ q →q2)联言推理合成式:p, q → p ∧ q(2). 选言推理1)相容选言推理的否定肯定式:(p ∨ q)∧⌝ p → q 或(p ∨ q)∧⌝ q→ p2)不相容选言推理的否定肯定式:(p ∨q)∧⌝ p → q 或(p ∨q)∧⌝ q → p3)不相容选言推理的肯定否定式:(p ∨q)∧ p →⌝ q 或(p ∨q)∧ q→⌝ p (3).假言命题推理1)充分条件假言推理的肯定前件式:(p → q)∧ p → q2)充分条件假言推理的否定后件式:(p → q)∧⌝ q →⌝ p3)必要条件假言推理的否定前件式:(p ← q)∧⌝ p →⌝ q4)必要条件假言推理的肯定后件式:(p ← q)∧ q → p5)充要条件假言推理的肯定前件式:(p ↔ q)∧ p → q6)充要条件假言推理的肯定后件式:(p ↔ q)∧ q → p7)充要条件假言推理的否定前件式:(p ↔ q)∧⌝ p →⌝ q8)充要条件假言推理的否定后件式:(p ↔ q)∧⌝ q →⌝ p5,A、E、I、O、a、e六种性质判断主、谓项的周延情况6,A、E、I、O四种判断的真假情况列表7,A、E、I、O四种性质判断之间的真假关系,可用如下的逻辑方阵表示:A 反对关系 E差矛矛差等盾盾等关关关关系系系系I 下反对关系 O矛盾关系: A与E,I与O,不能同真,不能同假反对关系: A与E 不能同真,可以同假下反对关系:I与O 可以同真,不能同假差等关系: A与I,E与O,可以同假,可以同真8,对当关系推理矛盾关系: SAP ↔⌝SOP SEP ↔⌝SIP SIP ↔⌝SEP SOP ↔⌝SAP 差等关系: SAP→SIP SEP→SOP ⌝SIP→⌝SAP ⌝SOP→⌝SEP反对关系: SAP→⌝SEP SEP→⌝SAP下反对关系:⌝SIP→SOP ⌝SOP→SIP9,命题变形推理(1)换质法: SAP ↔ SEP~ SEP~ ↔ SAP SEP ↔ SAP~ SAP~ ↔ SEPSIP ↔ SOP~ SOP~ ↔ SIP SOP ↔ SIP~ SIP~ ↔ SOP(2)换位法: SAP → PIS SEP ↔ PES SEP → POS SIP ↔ PIS10,三段论的格和式一、判断主项、谓项周延与否的四句话1.全称或单称判断的主项都周延。
逻辑判断推理中常用的逻辑公式
逻辑命题与推理必然性推理(演绎推理):对当关系推理、三段论、复合命题推理、关系推理和模态推理可能性推理:归纳推理(枚举归纳、科学归纳)、类比推理命题直言命题的种类:(AEIOae)⑴全称肯定命题:所有S是P(SAP)⑵全称否定命题:所有S不是P(SEP)⑶特称肯定命题:有的S是P(SIP)⑷特称否定命题:有的S不是P(SOP)⑸单称肯定命题:某个S是P(SaP)⑹单称否定命题:某个S不是P(SeP)直言命题间的真假对当关系:矛盾关系、(上)反对关系、(下)反对关系、从属关系矛盾关系:具有矛盾关系的两个命题之间不能同真同假。
主要有三组:SAP与SOP之间。
“所有同学考试都几个了”与“有些同学考试不及格”SEP与SIP之间。
“所有同学考试不及格”与“有些同学考试及格”SaP与SeP之间。
“张三考试及格”与“张三考试不及格”上反对关系:具有上反对关系的两个命题不能同真(必有一假),但是可以同假。
即要么一个是假的,要么都是假的。
存在于SAP与SEP、SAP与SeP、SEP与SaP之间。
下反对关系:具有下反对关系的两个命题不能同假(必有一真),但是可以同真。
即要么一个是真的,要么两个都是真的。
存在于SIP与SOP、SeP与SIP、SaP与SOP之间。
从属关系(可推出关系):存在于SAP与SIP、SEP与SOP、SAP与SaP、SEP与SeP、SaP与SIP、SeP与SOP六种直言命题之间存在的对当关系可以用一个六角图形来表示,“逻辑方阵图”SAP SEPSaP SePSIP SOP直言命题的真假包含关系全同关系、真包含于关系、真包含关系、交叉关系、全异关系复合命题:负命题、联言命题、选言命题、假言命题负命题的一般公式:并非P联言命题公式:p并且q “并且、…和…、既…又…、不但…而且、虽然…但是…”选言命题:相容的选言命题、不相容的选言命题相容的选言命题公式:p或者q“或、或者…或者…、也许…也许…、可能…可能…”【一个相容的选言命题是真的,只有一个选言支是真的即可。
逻辑推理公式
直言命题所有的都是上反对必有一假所有的都不是包容矛盾包容有的是必有一真下反对有的不是所有的A是B 上反对必有一假所有的A都不是B 包容矛盾包容有的A是B 必有一真下反对有A的不是B三段论A→BB→CA→B 有的B是CA→C 有的C是B—B →—A 逆否(A→B的矛盾关系A∧—B)A→B 有的A→B有的B→A—A∨BB→C充分假言:前推后(A推B),肯前肯后,否后否前如果A,那么B;只要A,就B 若A,则B所有A,是B 凡是A,是B 为了A,一定B 为了A,必须B A指的就是B 除非不A,否则B必要假言B推A只有A,才B 没有A,就没有B 不A,不B除非A,否则不B A是B的前提,保障,基础,条件/谁是条件谁在后选言命题P、Q √相容性P∨Q —P、Q √P、—Q √选言—P、—Q ×不相容性P∕Q 要么P要么Q不是P就是QP∨Q的矛盾命题—(P∨Q)→—P ∧—QP∨Q= —P →Q—Q →PP∨Q 排中律排除一个选中一个必须先排—A∨B = A→B (鲁宾逊定律)—A∨B的矛盾命题是A∧—B A→B的矛盾命题是A∧—B模态命题必然P 上反对必有一假必然非P 包容矛盾包容可能P 必有一真下反对可能非P模态命题的具体关系“并非必然P”等值于“可能非P”,即:不必然=可能不;“并非必然非P”等值于“可能P”,即:不必然不=可能;“并非可能P”等值于“必然非P”,即:不可能=必然不;“并非可能非P”等值于“必然P”,即:不可能不=必然;模态命题与非模态命题的推出关系必然P→P →可能P ;必然非P →非P→可能非P。
命题逻辑基本推理公式
命题逻辑基本推理公式(1) P∧Q⇒P .(2)¬( P→Q)⇒P .(3)¬(P→Q)⇒¬Q.(4) P⇒P ∨Q.(5)¬P⇒P →Q.(6) Q⇒P →Q.(7) ¬P∧(P∨Q) ⇒Q.选言推理否定式(8) P∧(P→Q) ⇒Q. 假言推理肯定前件式(9) ¬Q∧(P→Q) ⇒¬P .假言推理否定后件式(10) (P→Q)∧(Q→R) ⇒P→R. 三段论(11) (P↔ Q)∧(Q↔R) ⇒P↔R. 双条件三段论(12) (P→R)∧(Q→R)∧( P ∨Q) ⇒R. 二难推理(13) (P→Q)∧(R→S) ∧(P ∨R)⇒Q∨S. 二难推理(14) (P→Q)∧(R→S) ∧¬(Q∨¬S)⇒¬P ∨¬R. 破坏二难推理(15) (Q→R) ⇒(( P∨Q)→(P ∨R)) .(16) (Q→R) ⇒(( P→Q)→(P→R)) .使用真值表法证明这些推理公式是容易的。
若从语义上给予直观说明也是不难的. 如公式(2), ¬(P →Q) ⇒P . 公式( 3), ¬(P →Q)⇒Q. 意思是说, 若P →Q 不成立( 取假), 必有 P 为真, 还有 Q 为假. 这从P →Q 的定义可知, 因只有当 P = T 而 Q = F 时, P →Q = F. 又如公式( 7), ¬P ∧(P ∨Q)⇒Q. 意思是说, P 不对, 而P ∨Q 又对, 必然有 Q 对.公式( 8) , P ∧(P →Q) ⇒Q 常称作假言推理, 或称作分离规则, 是最常使用的推理公式。
公式(10) , (P →Q) ∧(Q→R)⇒P →R 常称作三段论。
日常语言运用:(1) 此人既呆又笨为真,则此人笨为真。
(2)(3)并非“犯错蕴涵失败“,即是说,”如果犯错,那么失败“为假命题,则必有犯错且不失败的例子。
逻辑判断推理中常用的逻辑公式00414
逻辑命题与推理必然性推理(演绎推理):对当关系推理、三段论、复合命题推理、关系推理和模态推理可能性推理:归纳推理(枚举归纳、科学归纳)、类比推理命题直言命题的种类:(AEIOae)⑴全称肯定命题:所有S是P(SAP)⑵全称否定命题:所有S不是P(SEP)⑶特称肯定命题:有的S是P(SIP)⑷特称否定命题:有的S不是P(SOP)⑸单称肯定命题:某个S是P(SaP)⑹单称否定命题:某个S不是P(SeP)直言命题间的真假对当关系:矛盾关系、(上)反对关系、(下)反对关系、从属关系矛盾关系:具有矛盾关系的两个命题之间不能同真同假。
主要有三组:SAP与SOP之间。
“所有同学考试都及格了”与“有些同学考试不及格”SEP与SIP之间。
“所有同学考试不及格”与“有些同学考试及格”SaP与SeP之间。
“张三考试及格”与“张三考试不及格”上反对关系:具有上反对关系的两个命题不能同真(必有一假),但是可以同假。
即要么一个是假的,要么都是假的。
存在于SAP与SEP、SAP与SeP、SEP与SaP之间。
下反对关系:具有下反对关系的两个命题不能同假(必有一真),但是可以同真。
即要么一个是真的,要么两个都是真的。
存在于SIP与SOP、SeP与SIP、SaP与SOP之间。
从属关系(可推出关系):存在于SAP与SIP、SEP与SOP、SAP与SaP、SEP与SeP、SaP与SIP、SeP与SOP六种直言命题之间存在的对当关系可以用一个六角图形来表示,“逻辑方阵图”SAP SEPSaP SePSIP SOP直言命题的真假包含关系全同关系、真包含于关系、真包含关系、交叉关系、全异关系复合命题:负命题、联言命题、选言命题、假言命题负命题的一般公式:并非P联言命题公式:p并且q “并且、…和…、既…又…、不但…而且、虽然…但是…”选言命题:相容的选言命题、不相容的选言命题相容的选言命题公式:p或者q“或、或者…或者…、也许…也许…、可能…可能…”【一个相容的选言命题是真的,只有一个选言支是真的即可。
逻辑命题公式计算
逻辑命题公式计算本页仅作为文档页封面,使用时可以删除This document is for reference only-rar21year.March题号:第一题题目:电梯模拟1,需求分析:计算命题演算公式的真值所谓命题演算公式是指由逻辑变量(其值为TRUE或FALSE)和逻辑运算符∧(AND)、∨(OR)和┐(NOT)按一定规则所组成的公式(蕴含之类的运算可以用∧、∨和┐来表示)。
公式运算的先后顺序为┐、∧、∨,而括号()可以改变优先次序。
已知一个命题演算公式及各变量的值,要求设计一个程序来计算公式的真值。
要求:(1)利用二叉树来计算公式的真值。
首先利用堆栈将中缀形式的公式变为后缀形式;然后根据后缀形式,从叶结点开始构造相应的二叉树;最后按后序遍历该树,求各子树之值,即每到达一个结点,其子树之值已经计算出来,当到达根结点时,求得的值就是公式之真值。
(2)逻辑变元的标识符不限于单字母,而可以是任意长的字母数字串。
(3)根据用户的要求显示表达式的真值表。
2,设计:2.1 设计思想:<1>,数据结构设计:(1) 线性堆栈1的数据结构定义typedef struct{DataType stack [MaxStackSize];int top; /* 当前栈的表长*/} SeqStack;用线性堆栈主要是用来存储输入的字符,它的作用就是将中缀表达式变成后缀表达式。
(2) 线性堆栈2的数据结构定义typedef struct{BiTreeNode *stack [MaxStackSize];int top; /* 当前栈的表长*/} TreeStack;这个堆栈和上面的堆栈的唯一不同就是它们存储的数据的类型不同,此堆栈存储的是树节点,它的作用是将后缀表达式构成一棵二叉树。
(3)树节点数据结构定义typedef struct Node{DataType data;struct Node *leftChild;struct Node *rightChild;}BiTreeNode;<2>算法设计详细思路如下:首先实现将中缀表达式变成后缀表达式:在将中缀表达式变成后缀表达式的时候会用到堆栈,因此首先需要初始化一个堆栈。
考研逻辑公式
一、命题及其否命题(矛盾命题)1、并非“所有S都就是P” = 有些S不就是P2、并非“所有S都不就是P" = 有些S就是P3、并非“P且Q”= 非P或非P4、并非“P或Q ” = 非P且非Q5、并非“要么P要么Q”=“P且Q”或“非P且非Q”6、并非“如果P,则Q”= P且非Q7、并非“只有P,才Q” = 非P且Q二、充分条件(P,则Q)假言命题1、语言形式(P→Q):“如果P那么Q”“只要P,就Q”“若P必Q”“P,则Q"2、性质:如果充分条件命题“P→Q"为真,则:(1)肯定P必肯定Q(P真,则Q为真)(2)否定P,未必否定Q(P假,则Q不一定假)(3)肯定Q,未必肯定P(Q真,则P不一定真)(4)否定Q,必否定P(Q假,则P为假)3、公式:(1)“如果P,那么Q”= “非P或P”(2)并非(P→Q) = P且非Q三、必要条件(只有P,才Q)假言命题1、语言形式(P←Q):“只有P,才Q"“如果Q,则P”“不P,不Q”“没有P,没有Q”P就是Q得前提(必不可少得条件)2、性质:P←Q为真:(1)有P未必有Q(2)无P必无Q(3)有Q必有P(4)无Q未必有P3、公式(1)“只有P,才Q” = “如果Q,则P”(2)并非“只有P,才Q” = “并非P且Q”四、联言命题1、语言形式:“不仅P,而且Q”,“虽然P,但就是Q"“既P,又Q”“一边P,一边Q”2、性质:一真及真、一假及假3、公式:(1)并非“P且Q" =“非P或非Q”(2)并非“P或Q” = “非P且非Q"五、选言命题1、语言形式:(1)相容:或者P,或者Q,命题为真,至少一个为真(2)不相容:要么P,要么Q,不就是P,就就是Q。
只有一个为真,命题为真2、公式:(1)P或Q = 如果非P,则Q(2)并非“P或Q"=非P且非Q六、三段论(大前提、小前提、结论)1、规则:大前提-—小前提——结论(可以用柏拉图)例题:我就是台湾人,但同时我也就是中国人。
逻辑最基本的公式
逻辑最基本的公式
蕴含是逻辑中最基本的重要概念之一,可以用符号“→”表示。
蕴含的定义是:“如果命题P成立,则命题Q也成立”。
这可以用以下公式表示:
P→Q
其中,P被称为前提,Q被称为结论。
这个公式意味着如果前提P成立,那么结论Q也必定成立。
蕴含有几个重要的特性:
1.反身性:一个命题蕴含它本身。
即,P→P是恒成立的。
2.假言推理:如果有一个蕴含P→Q成立,又知道P成立,那么我们可以推断Q也成立。
这被称为假言推理,也是常见的逻辑推理形式。
3.合成性:如果有两个蕴含P→Q和Q→R成立,那么我们可以推断出P→R也成立。
这被称为合成性,表示多个蕴含的传递性。
此外,逻辑中还有一个重要的公式是“等价”。
等价表示两个命题之间具有相同的真值,可以用符号“↔”表示。
等价的定义是:“如果命题P成立,则命题Q也成立;反之亦然”。
这可以用以下公式表示:P↔Q
等价命题具有以下几个特性:
1.反身性:一个命题等价于它自身。
即,P↔P是恒成立的。
2.传递性:如果有两个等价P↔Q和Q↔R成立,那么我们可以推断出P↔R也成立。
3.双向假设推理:如果有一个等价P↔Q成立,我们可以根据其中一个命题的真值推断另一个命题的真值。
以上是逻辑中最基本的公式,蕴含和等价。
它们是逻辑推理的基础,适用于许多领域,如数学、哲学、计算机科学等。
透彻理解和应用这些公式,有助于我们进行严密的逻辑思考和推理。
逻辑推理公式整理
逻辑推理公式整理逻辑推理是一种基于事实和前提的推导过程,通过推理规则和逻辑公式来得出新的结论。
在逻辑推理中,公式扮演着重要的角色,可以帮助我们理解和描述逻辑关系。
以下是一些常见的逻辑推理公式。
1.求取命题的否定:公式:¬P说明:这个公式表示命题P的否定,即P不成立。
2.条件推理:公式:P→Q说明:这个公式表示如果P成立,则Q也成立。
这是一种常见的逻辑推理形式。
3.充分必要条件:公式:P↔Q说明:这个公式表示P与Q是充分必要条件,即当P成立时Q成立,且当Q成立时P也成立。
4.假言推理:公式:P,Q/P→Q说明:这个公式表示如果同时有P和Q成立,则可以得出P推出Q。
5.排中律:公式:P∨¬P说明:这个公式表示一个命题P或它的否定¬P一定成立。
这是一种基本的逻辑定律。
6.矛盾律:公式:P∧¬P说明:这个公式表示一个命题P与它的否定¬P是矛盾的,不可能同时成立。
7.分配律:公式:P∧(Q∨R)≡(P∧Q)∨(P∧R)说明:这个公式表示逻辑中的分配律,可以帮助我们简化复杂命题的形式。
8.合取范式:公式:(P∨Q)∧(¬P∨Q)∨(P∨¬Q)∧(¬P∨¬Q)说明:这个公式表示合取范式,可以将命题写成一组合取式的多个命题的析取。
9.析取范式:公式:(P∧Q)∨(¬P∧Q)∨(P∧¬Q)∨(¬P∧¬Q)说明:这个公式表示析取范式,可以将命题写成一组析取式的多个命题的合取。
10.假言三段论:公式:P→Q,Q→R/P→R说明:这个公式表示如果P推出Q,且Q推出R,则可以得出P推出R。
这些是一些常见的逻辑推理公式,可以应用于不同的逻辑推理问题中。
逻辑公式的运用能够帮助我们进行准确有效的推理和论证,提高逻辑思维能力。
在实际应用中,还有更多的逻辑推理公式可以用于解决复杂的问题。
3.命题变元与命题公式
从本节开始,将不再关心命题内容的含义,只 注意命题的真假值,命题的真假值由真值表来 决定,从而在命题与命题联结词上建立一个形 式的系统。
一个特定的命题是一个常值命题,它的真假值只有“T”与 “F”。
对于一个任意的没有赋予具体内容的命题。我们将其称为 命题变元。其定义如下:
以“真”、“假”为其变域的变元称为命题变元,用P、 Q、R等表示,简称为命题。
定义:命题变元的一组确定的值叫做公式的一个指派,每 个指派对应公式的一个确定的值。
定义:所有的指派构成公式的值即组成此公式的一个真值 表。
公式值的确定是按照公式中联结词的出现的先后次序及括 号顺序逐步应用命题联结词的真值表规定而得到的。
构造下面命题公式的真值表:
(P Q) (P Q)
命题公式是一个按照上述法则由命题变元、命题 联结词和圆括号所组成的字符串。(归纳定义)
参看课本P175例子。
Remark:
1 命题公式的括号可以按照上节课内容所讲的方法予以适 当省略。
2 一个命题公式也有真假值,其真假值由其所组成它的命 题的真假惟一确定,从这个角度看,命题公式可以看成是 一个以真假为定义域,以真假为值域的函数。(逻辑函数)
P Q P∧Q
TTT TF F FT F FF F
(P∧Q) P Q
F
FF
T FT
T TF
T TT
P∧ Q F F F T
(P∧Q) → P∧ Q
T F
F
T
3 可以借助一个真值表来确定一个命题公式的真假,此真 值表称为此命题公式的真值表。
设有一个由n个命题变元P1,P2, …,Pn所组成的公式,则此 公式的真假由此n个命题变元所惟一确定:给n个命题变元 (P1,P2, …,Pn)以一组确定的值后(它们由若干个T及F组 成),则能得到相应命题公式的一个确定的值(T或F).
逻辑公式
3.矛盾命题:如果 p 为真,那么¬p 为假 4.摩根公式:非(p 且 q)=非 p 或非 q 非(p 或 q)=非 p 且非 q
¬(p q)= ¬p ¬q ¬(p q)= ¬p ¬q 5.假言命题:p→q
词语形式:如果 p,那么 q;一旦 p,那么 q;只要 p,那么 q 若 p,则 q;所有 p 都是 q;越 p 越 q; 只有 q 才 p;必须 q,才 p;除非 q,才 p;q,才 p 不 q,不 p;没有 q,没有 p; q 是 p 的前提,基础,标志; P 导致,引起,造成,影响,有利于 q
一.基本的逻辑概念:
1.联言命题: 符号形式:p 且 q(p q) 语言形式:并且;既。 。 。又。 。 。 ;虽然。 。 。但是。 。 。 ;一边。 。 。一边。 。 。 ;p,q 性质:p、q 都为真,整个命题才为真;显然有 (真 真)=真; (真 假)=(假 真)=(假 假)=假
2.选言命题:
①相容或:p 或 q(p q) 语言形式:或者。 。 。或者。 。 。 ;可能。 。 。也许。 。 。 ;p,q 至少选一个; 性质:只要有一个为真则为真;显然有 (假 假)=假 (真 真)=(真 假)=(假 真)=真 ②排斥或:要么 p,要么 q 性质:只能一真一假时为真;显然有 (真 假)=(假 真)=真 (假 假)=(真 真)=假
性质:p→q=¬q→¬p(否后必否前,肯前必肯后) =¬p 或 q(¬p q) ¬(p→q)=p ¬q 如果 p→q 为真,那么只有当 p 且¬q 时为假 ※除非 p 否则 q;p 否则 q 等价于 题型一: p→q ¬p→q q ¬p→q 题型三:
p
题型二: p→q p→ q(相容或)与 p q 的真假关系 ①同真:p,q 同时为真 ②同假:p,q 同时为假 ③一真一假:p q 为真,p q 为假,并且 p,q 一真一假 7.p q(相容或)与 p q(排斥或)的真假关系 ①同真:p,q 一真一假 ②同假:p,q 同时为假 ③一真一假:p q(相容或)为真,p q(排斥或)为假,并且 p,q 同为真
逻辑代数基本公式
逻辑代数基本公式逻辑代数是一种用于逻辑项的数学工具。
在逻辑代数中,有许多基本公式,这些公式是我们进行逻辑运算必须掌握并灵活运用的工具。
首先,我们要介绍逻辑代数的基本运算符:与(∧)、或(∨)、非(¬)。
其中,“与”表示两个命题都成立的情况,“或”表示两个命题中至少有一个成立的情况,“非”则是指命题的否定。
接下来,我们要介绍逻辑代数的基本公式:1.德摩根定律德摩根定律是逻辑代数中最经典的公式之一。
它的形式如下:(¬A)∨(¬B)=¬(A∧B)(¬A)∧(¬B)=¬(A∨B)这个定律的意义在于,将“非”运算符从一个命题移到另一个上时,必须同时改变并置换“与”和“或”运算符。
例如:“既不是A也不是B”等价于“不是(A和B)”。
2.分配律分配律的形式如下:A∧(B∨C)=(A∧B)∨(A∧C)A∨(B∧C)=(A∨B)∧(A∨C)分配律在进行逻辑运算时非常实用。
例如,可以将一个复杂的命题转化为一个简单的命题,从而更容易理解。
3.结合律结合律的形式如下:(A∧B)∧C=A∧(B∧C)(A∨B)∨C=A∨(B∨C)结合律指的是,多个有相同运算符的命题可以成员结合在一起。
例如,(A∧B)∧C 等价于A∧(B∧C)。
4.交换律交换律的形式如下:A∧B=B∧AA∨B=B∨A交换律指的是命题中多个项之间可以交换位置,而不影响命题的结论。
例如,A∧B 等价于B∧A。
5.对偶原理对偶原理是基于真值表同构的,它用于将一个表达式的真值表中0 和 1 互换,统称为互为对偶。
其公式如下:¬(A∧B) = ¬A ∨ ¬B¬(A∨B) = ¬A ∧ ¬B其中,左侧是原式,右侧是公式的对偶形式。
逻辑代数中的这些基本公式,可以帮助我们更加容易地进行逻辑运算,简化逻辑命题,并且在实践中具有广泛的应用。
我们应该认真学习这些公式,并对其进行灵活的运用。
考研逻辑公式大全
考研逻辑公式大全引言概述:考研逻辑是许多考研生必须面对的一门科目,也是考研复习的重点。
在考研逻辑中,掌握一些常用的逻辑公式对于提高解题能力非常重要。
本文将介绍一些常用的考研逻辑公式,并详细讲解每个公式的含义和用法,帮助考生提高逻辑思维能力和解题技巧。
正文内容:一、命题逻辑公式1.否定、合取和析取的规则否定规则(~P→Q,P→~Q)合取规则(P∧Q→P,P∧Q→Q)析取规则(P→P∨Q,Q→P∨Q)2.充分必要条件充分条件(P→Q)必要条件(P←Q)3.前提、假言和推理前提(P→Q)假言(Q→R)推理(P→R)4.形式逻辑假言推理(P→Q,Q→R,∴P→R)归谬法(P∨~P,∴Q)5.逆否命题逆命题(P→Q,∴~Q→~P)否命题(P→Q,∴~Q→P)二、谓词逻辑公式1.全称量词和存在量词全称量词(∀xP(x))存在量词(∃xP(x))2.等价和蕴含等价(P↔Q)蕴含(P→Q)3.合取和析取的分配合取分配(P∧Q∨R↔(P∧Q)∨(P∧R))析取分配(P∨Q∧R↔(P∨Q)∧(P∨R))4.归纳与演绎归纳(P(1)∧P(2)∧∧P(n)→P(n+1))演绎(P(n+1)→P(1)∧P(2)∧∧P(n))5.排中律和矛盾律排中律(P∨~P)矛盾律(P∧~P)三、假言逻辑公式1.转化和归纳转化(P∨Q↔~P→Q)归纳(P1∧P2∧∧Pn↔Pn→Pn1→→P2→P1)2.加法和等加律加法(P→P∨Q)等加律(P∧Q→P∧(P∨Q))3.乘法和等乘律乘法(P∧Q→P∧Q∧R)等乘律((P→Q)∧(Q→R)→(P→Q∧R))4.消去律和全称推出消去律(P→Q→~P∨Q)全称推出(∀x(P→Q)→(∀xP→∀xQ))5.远因和作用远因(~R→~P)作用(~R←~P)四、逆否逻辑公式1.逆否律逆否律(P→Q→~Q→~P)2.否定和蕴含的关系否定和蕴含的关系(~(P∨Q)↔~P∧~Q)3.否定和等价的关系否定和等价的关系(~(P↔Q)↔(P∧~Q)∨(Q∧~P))4.否定和全称量词的关系否定和全称量词的关系(~∀xP(x)↔∃x~P(x))5.否定和存在量词的关系否定和存在量词的关系(~∃xP(x)↔∀x~P(x))五、模态逻辑公式1.必然和可能的关系必然和可能的关系(□P→◇P)2.必然和否定的关系必然和否定的关系(□P→~P)3.合取和析取的关系合取和析取的关系(◇P∧◇Q→◇(P∧Q))4.独立和依赖的关系独立和依赖的关系(◇P∧◇Q→◇P∨◇Q)5.充分必要条件的关系充分必要条件的关系(□(P→Q)→(P→Q))总结:逻辑公式在考研复习中起着重要的作用,可以帮助考生提高逻辑思维能力和解题技巧。
构造命题公式
构造命题公式
命题公式是用来描述命题的一种数学符号表示方法。
它通常由命题变元、逻辑连接词和括号组成。
命题变元可以是任何可以成为命题的符号或字母,逻辑连接词包括“非”、“与”、“或”、“蕴含”和“双条件”,括号用于确定逻辑运算的顺序。
举例来说,我们可以构造一个简单的命题公式,p∧(q→r)。
在这个命题公式中,p、q、r是命题变元,“∧”表示逻辑“与”运算,“→”表示逻辑“蕴含”运算。
这个命题公式可以读作“p并且如果q则r”。
另一个例子是命题公式,(p∨q)→(¬r)。
在这个命题公式中,“∨”表示逻辑“或”运算,“¬”表示逻辑“非”运算。
这个命题公式可以读作“如果p或者q,则非r”。
通过这些例子,我们可以看到命题公式的构造可以通过命题变元和逻辑连接词的组合来描述复杂的命题关系。
在实际应用中,命题公式可以用于描述逻辑推理、数学证明以及计算机科学中的逻辑运算等方面。
希望这些例子可以帮助你理解命题公式的构造。
命题逻辑的命题变元与命题公式
命题逻辑的命题变元与命题公式命题逻辑(propositional logic)是关于命题的推理和推导的形式系统。
在命题逻辑中,命题变元是一个占位符,用于代表不确定的命题,在逻辑推理中,我们可以对这些命题变元进行推导和推理,最终得到一个命题公式。
一、命题变元命题变元是命题逻辑中最基本的概念之一,它是用来表示命题或者陈述的符号。
命题变元可以用字母来表示,常见的命题变元有p, q, r等。
这些命题变元可以是真命题,也可以是假命题,或者是未知的。
在命题逻辑中,命题变元不具体代表某个具体的内容,而是用来标记命题的不同情况和不同组合。
通过不同的命题变元,我们可以建立不同的命题公式,从而进行逻辑推理。
二、命题公式命题公式是由命题变元以及逻辑连接词组成的复合命题。
逻辑连接词包括合取、析取、条件和双条件等,它们用来描述不同的命题之间的关系。
1. 合取(∧):表示“且”的关系,当且仅当连接的两个命题都为真时,合取命题为真。
例如,命题公式 p ∧ q 表示命题p和命题q都为真时,整个命题公式为真。
2. 析取(∨):表示“或”的关系,当连接的两个命题至少有一个为真时,析取命题为真。
例如,命题公式 p ∨ q 表示命题p和命题q 至少有一个为真时,整个命题公式为真。
3. 条件(→ ):表示“如果...则...”的关系,当前项为真且后项为假时,条件命题为假。
例如,命题公式p → q 表示如果命题p为真,则命题q也必为真。
4. 双条件(↔ ):表示“当且仅当”的关系,当连接的两个命题具有相同的真值时,双条件命题为真。
例如,命题公式p ↔ q 表示命题p 和命题q具有相同的真值。
通过这些逻辑连接词以及命题变元的组合,我们可以构建出复杂的命题公式,用来表示各种不同的逻辑表达式。
命题逻辑的命题变元与命题公式是逻辑推理的基础,通过对命题变元的组合和逻辑连接词的运用,我们可以进行符号化的逻辑推导,从而分析和验证复杂的逻辑论证过程。
在实际应用中,命题逻辑被广泛运用于数学、计算机科学、哲学等领域,为解决问题提供了重要的工具和方法。
逻辑判断推理中常用的逻辑公式
逻辑命题与推理必然性推理(演绎推理):对当关系推理、三段论、复合命题推理、关系推理和模态推理可能性推理:归纳推理(枚举归纳、科学归纳)、类比推理命题直言命题的种类:(AEIOae)⑴全称肯定命题:所有S是P(SAP)⑵全称否定命题:所有S不是P(SEP)⑶特称肯定命题:有的S是P(SIP)⑷特称否定命题:有的S不是P(SOP)⑸单称肯定命题:某个S是P(SaP)⑹单称否定命题:某个S不是P(SeP)直言命题间的真假对当关系:矛盾关系、(上)反对关系、(下)反对关系、从属关系矛盾关系:具有矛盾关系的两个命题之间不能同真同假。
主要有三组:SAP与SOP之间。
“所有同学考试都几个了”与“有些同学考试不及格”SEP与SIP之间。
“所有同学考试不及格”与“有些同学考试及格”SaP与SeP之间。
“张三考试及格”与“张三考试不及格”上反对关系:具有上反对关系的两个命题不能同真(必有一假),但是可以同假。
即要么一个是假的,要么都是假的。
存在于SAP与SEP、SAP与SeP、SEP与SaP之间。
下反对关系:具有下反对关系的两个命题不能同假(必有一真),但是可以同真。
即要么一个是真的,要么两个都是真的。
存在于SIP与SOP、SeP与SIP、SaP与SOP之间。
从属关系(可推出关系):存在于SAP与SIP、SEP与SOP、SAP与SaP、SEP与SeP、SaP与SIP、SeP与SOP六种直言命题之间存在的对当关系可以用一个六角图形来表示,“逻辑方阵图”SAP SEPSaP SePSIP SOP直言命题的真假包含关系全同关系、真包含于关系、真包含关系、交叉关系、全异关系复合命题:负命题、联言命题、选言命题、假言命题负命题的一般公式:并非P联言命题公式:p并且q “并且、…和…、既…又…、不但…而且、虽然…但是…”选言命题:相容的选言命题、不相容的选言命题相容的选言命题公式:p或者q“或、或者…或者…、也许…也许…、可能…可能…”【一个相容的选言命题是真的,只有一个选言支是真的即可。
逻辑判断推理中常用的逻辑公式
逻辑命题与推理必然性推理(演绎推理):对当关系推理、三段论、复合命题推理、关系推理与模态推理可能性推理:归纳推理(枚举归纳、科学归纳)、类比推理命题直言命题得种类:(AEIOae)⑴全称肯定命题:所有S就是P(SAP)⑵全称否定命题:所有S不就是P(SEP)⑶特称肯定命题:有得S就是P(SIP)⑷特称否定命题:有得S不就是P(SOP)⑸单称肯定命题:某个S就是P(SaP)⑹单称否定命题:某个S不就是P(SeP)直言命题间得真假对当关系:矛盾关系、(上)反对关系、(下)反对关系、从属关系矛盾关系:具有矛盾关系得两个命题之间不能同真同假。
主要有三组:SAP与SOP之间。
“所有同学考试都及格了"与“有些同学考试不及格”SEP与SIP之间、“所有同学考试不及格”与“有些同学考试及格"SaP与SeP之间。
“张三考试及格”与“张三考试不及格”上反对关系:具有上反对关系得两个命题不能同真(必有一假),但就是可以同假、即要么一个就是假得,要么都就是假得、存在于SAP与SEP、SAP与SeP、SEP与SaP之间。
下反对关系:具有下反对关系得两个命题不能同假(必有一真),但就是可以同真。
即要么一个就是真得,要么两个都就是真得。
存在于SIP与SOP、SeP与SIP、SaP与SOP之间。
从属关系(可推出关系):存在于SAP与SIP、SEP与SOP、SAP与SaP、SEP与SeP、SaP与SIP、SeP与SOP 六种直言命题之间存在得对当关系可以用一个六角图形来表示,“逻辑方阵图”SAPSEPSaP SePSIP SOP直言命题得真假包含关系全同关系、真包含于关系、真包含关系、交叉关系、全异关系复合命题:负命题、联言命题、选言命题、假言命题负命题得一般公式:并非P联言命题公式:p并且q“并且、…与…、既…又…、不但…而且、虽然…但就是…”选言命题:相容得选言命题、不相容得选言命题相容得选言命题公式:p或者q“或、或者…或者…、也许…也许…、可能…可能…”【一个相容得选言命题就是真得,只有一个选言支就是真得即可。
常用的命题等价公式
0
成立
练习 :用真值表判断下列等价公式是否成立 1 (1)p (q r ) ( p q ) r 成立
p 0 0 0 0 1 1 1 1 q 0 0 1 1 0 0 1 1 r 0 1 0 1 0 1 0 1 q→r 1 p∧q 0 p→(q → r) ( p∧q )→ r 1 1 1 1 1 1 1 1 0 1 1 1 1 1
证明 1):( p q) r (p q ) r ( (p q ) r ( p q ) r ( q p ) r
(2) p q r p r q r
(2) p q r p r q r
(2)( p q) p q r 解 : ( p q) p q r (p q) p q r (p p) (q p) q r 0 (q p) q r (q p) q r (q p) q r (q p) q r q p q r 1 r 0 r 0 该公式是永假式
练习4:利用基本等价公式判断下列公式的类型
(1) ( p q ) q p (2)( p q) p q r 解(1): p q) q p (
( p q ) q p (p q ) (q q ) p ( p q ) 0 p ( p q ) p (p q ) p ( p q ) p p q p 1 该公式是永真式
由于日本和中国不能并列第一,日本不能既第一又第三, 韩国和日本不能并列第三,即第一、第三和第四为0,所以 (R1 Q 3 P 1 R3) 1 ⑷
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
题号:第一题题目:电梯模拟1,需求分析:计算命题演算公式的真值所谓命题演算公式是指由逻辑变量(其值为TRUE或FALSE )和逻辑运算符人(AND )、V( OR)和「( NOT )按一定规则所组成的公式(蕴含之类的运算可以用A、V和「来表示)。
公式运算的先后顺序为「、人、V,而括号()可以改变优先次序。
已知一个命题演算公式及各变量的值,要求设计一个程序来计算公式的真值。
要求:( 1)利用二叉树来计算公式的真值。
首先利用堆栈将中缀形式的公式变为后缀形式;然后根据后缀形式, 从叶结点开始构造相应的二叉树;最后按后序遍历该树, 求各子树之值, 即每到达一个结点, 其子树之值已经计算出来, 当到达根结点时, 求得的值就是公式之真值。
( 2)逻辑变元的标识符不限于单字母,而可以是任意长的字母数字串。
( 3)根据用户的要求显示表达式的真值表。
2,设计:2.1 设计思想:<1> ,数据结构设计:(1) 线性堆栈1 的数据结构定义typedef struct{DataType stack [MaxStackSize];int top; /* 当前栈的表长*/} SeqStack;用线性堆栈主要是用来存储输入的字符, 它的作用就是将中缀表达式变成后缀表达式。
(2) 线性堆栈2 的数据结构定义typedef struct{BiTreeNode *stack [MaxStackSize];int top; /* 当前栈的表长*/} TreeStack;这个堆栈和上面的堆栈的唯一不同就是它们存储的数据的类型不同, 此堆栈存储的是树节点,它的作用是将后缀表达式构成一棵二叉树。
(3)树节点数据结构定义typedef struct Node {DataType data; struct Node *leftChild; struct Node *rightChild; }BiTreeNode;<2>算法设计详细思路如下:首先实现将中缀表达式变成后缀表达式:在将中缀表达式变成后缀表达式的时候会用到堆栈,因此首先需要初始化一个堆栈。
又由于逻辑变元可能是字符也可能是字符串,所以它又不同于将单字符的逻辑变元的中缀表达式变成后缀表达式。
我的设计是这样的,我将中缀表达式变成后缀表达式的过程分成了两部:化简(将一维的复杂的中缀表达式变成一维的简单的中缀表达式,并将字符串逻辑变元存放在二维数组中),转化(将化简后的中缀表达式变成后缀表达式)。
(1)化简:先用一个字符数组存放输入的中缀表达式(表达式以‘#'号结束),然后将一维的中缀表达式中的字符串逻辑变元用一个字符进行标识,这样我们就可以将原来复杂的中缀表达式变成熟悉而又简单的中缀表达式,同时用二维数组存放那些字符串逻辑变元。
实现的过程就是首先扫描一维中缀表达式,如果遇到逻辑符号,那么记住这个逻辑符号在数组中的相对位置用一个变量存放,然后继续扫描中缀表达式直到再次遇到逻辑符号,再一次记住它在中缀表达式中的相对位置,这两个逻辑符号之间的部分就是一个完整的逻辑变元,将这个字符串逻辑变元用一个字符代替并将这个字符串逻辑变元保存在二维数组中。
这个过程的实现我把它放在cha nge()函数中。
(2)转化:在实现该功能时,首先需要定义各符号的优先级,即:'(' 和')' 的优先级最高;'!'(逻辑非号)的优先级次之;'&'(逻辑与号)的优先级又低一级,'|'(逻辑或号)的优先级跟低;'#' (他不是逻辑符号,只是为了方便使用堆栈而设置)的优先级最低,接着将'#'压入堆栈。
在这之后就是正式的转化了,其过程为:当读到的是逻辑变元时直接输出,并保存到保存后缀表达式的数组中,当读到的单词为运算符时,令x1 为当前栈顶运算符的变量,x2 为当前扫描到的简单中缀表达式的运算符的变量,把当前读入的单词赋予变量x2,然后比较x1和x2的优先级。
若x1的优先级高于x2的优先级,将x1退栈作为后缀表达式的一个单词输出,然后接着比较新的栈顶运算符x1 的优先级与x2 的优先级;若x1 的优先级低于x2 的优先级,将x2 的值进栈,然后接着读下一个单词;若x1 的优先级等于x2 的优先级且x1 为“(”,x2 为“)”,将x1 退栈,然后接着读下一个单词;若x1 的优先级等于x2 的优先级且x1 为“#”,x2 为“#”,算法结束。
这个过程我把它放在InToPost()函数中。
然后用后缀表达式构造出二叉树:在这个过程中,我用到了之前所定义的存放树的堆栈。
具体实现为:扫描后缀表达式,如果遇到逻辑变元然后将这个变元变成一个树节点,它的实现就是将该逻辑变元赋给树的data 域,然后将它的左右子树赋为NULL ,然后将这个树节点压入相应的堆栈;接着继续扫描,如果遇到的是单目运算符(非号“!”)也将它构造成一个树节点然后从堆栈里面弹出一个树形节点,将弹出的元素的作为它的左子树,右子树设置为NULL ,然后将这个树节点压入相应的堆栈;如果扫描到的是双目运算符(与号“ & ”或者或号“ |”)将它也构造成一棵树,然后将这个树节点压入相应的堆栈,然后从栈中弹出两个元素,一个作为它的左子树,一个作为它的右子树,如此重复(n n 为后缀表达式的长度)次。
这个过程我把它放在Maketree()函数中。
最后打印真值表:打印真值表也用到了前面的简单的后缀表达式,其实现的基本思想为和构造二叉树差不多,它实现了每到一个根节点就计算一个运算的值。
在打印之前需要统计字符的个数,有m个字符则要打印2A m行,因为他有这么多情况。
具体实现为:用一个字符型的数组来存放每个元素的一次取值,然后扫描后缀表达式,如果遇到逻辑变元就通过这个标识将相应的取值赋给它,然后它压入堆栈;接着继续扫描,如果遇到的是单目运算符(非号“!”)则从堆栈里面弹出一个元素,并对它进行非运算,然后又将这个运算后的值压入堆栈;如果扫描到的是双目运算符(与号“ &”或者或号“ |”)则从栈中弹出两个元素,并对这两个元素进行相应的运算,然后将这个运算后的值压入堆栈,如此重复n (n为后缀表达式的长度)次。
这个过程我把它放在Print()函数中。
其中第一,二过程的流程图描述分别为:2.2设计表示:<1>,函数调用关系及函数说明cha nge()函数原型为:void cha nge(char prefixStr1[],char prefixStr[],i nt len gth[],char store[][10],i nt* row,i nt* k ) 该函数含有有六个参数,其中prefixStr1[]为用户输入的中缀表达式,prefixStr[]为即将转化成为的简单中缀表达式,length[]为二维数组中存放的各个字符串的的长度store[][10]用来存放中缀表达式中的逻辑变元,row就是逻辑变元的个数,k简化后的中缀表达式的长度。
该函数的功能就是将复杂的中缀表达式变成简单的中缀表达式。
InToPost()函数原型为:void InToPost(char prefixStr[],char postfixStr[],SeqStack* myStack,int* n,int k)该函数函数有五个参数prefixStr[]为中缀表达式,postfixStr[]为简化后的后缀表达式,myStack为在转化过程中用到的堆栈,n为后缀表达式的字符长度,k为中缀表达式的字符长度。
该函数的功能就是将简单的中缀表达式变成简单的后缀表达式。
Maketree()函数原型为:void Maketree(BiTreeNode *root,TreeStack* myTree,char postfixStr[],i nt n)该函数共有四个参数,其中root为所建立的树的根节点,myTree是在构造树时所用到的堆栈,另外两个参数和前面的同名参数具有相同意义。
这个函数的功能就是将简单的中缀表达式变成简单的后缀表达式。
Precede。
函数原型为:DataType Precede(DataType x1,DataType x2)该函数有两个参数,返回值类型为DataType型,其中x1和x2就是要进行优先级比较的两个两个字符。
x1为栈顶元素,x2为扫描到的元素。
该函数的功能就是比较x1和x2的优先级并将比较结果返回给调用函数。
Print() 函数原型为:void Print(char postfixStr[],char store[][10],int length[],int row,int n,SeqStack* myStack) 该函数有六个参数,其中myStack 是在输出真值表过程中要用到的堆栈,其余的参数和前面介绍的函数中的同名参数具有相同的意义。
该函数的功能就是打印真值表。
<2> 函数接口说明:函数的调用关系在上面的图中已经显示出来了,整个程序就是由一些子函数的集合,他们之间按所要实现的功能不同而调用不同的函数。
在这些函数中除主函数外,其它函数的级别相同。
2.3 详细设计:(1),定义所需要的结构体,前面已经介绍了; (2),我将中缀表达式变成后缀表达式的过程分成了两部:化简(将一维的复杂的中缀表达式变成一维的简单的中缀表达式,并将字符串逻辑变元存放在二维数组中) ,转化(将化简后的中缀表达式变成后缀表达式)。
其中化简部分将要用伪代码描述为while(prefixStr1[m]!='#') {扫描中缀表达式while(prefixStr1[m] 不为运算'符) { 继续扫描,直到扫描到运算符;}扫描到运算符后{构造简化的中缀表达式;得到这个字符串的长度; 将这个字符串存放在store[][10] 中;}}转化部分用伪代码描述为:循环扫描中缀表达式{if( 扫描到逻辑变元) 保存到后缀表达式中;else{StackTop(myStack,&x);res=Precede(x扫描到的运算符); if(res=='>') x 退栈;if(res=='<') 扫描到的运算符进栈;if(res=='=' && x=='(') 退栈if(res=='=' && x=='#') 结束;}}(3),构造二叉树,其思想就是将逻辑变元作为叶子节点,运算符作为根节点,用堆栈实现,用伪代码简单描述为:循环扫描后缀表达式{if( 扫描到逻辑变元')讲逻辑变元进栈;else{if(' 扫描到双目运算符){StackPop1(myTree,&x1);StackPop1(myTree,&x2);将x1,x2 作为它的左右子树;StackPush1(myTree,p);}else{StackPop1(myTree,&x1);将x1 作为它的左子树,又子树为空;StackPush1(myTree,p);}}StackPop1(myTree,&x1);root->leftChild=x1;}(4),打印二叉树,其基本思想就是每到一个根节点就计算一个值,如此重复,直到总根节点,用伪代码简单描述为:循环赋值{if( 扫描到逻辑变元'){赋值进栈;}else{if( 扫描到双目运算符){从栈中弹出两数对两数进行相应的运算;将运算结构进栈;;}else{从栈中弹出两数;对两数进行非运算;将运算结构进栈;}每循环一次输出一个结构;3,调试分析:<1>,调试过程中遇到的问题与解决方案:这个题我个人觉的是这几个中最麻烦的一个,因为它有几个难点去分析与实现:首先就是中缀表达式中的逻辑变元不是单个字符而是一些字符串,这样在将中缀表达式转化成后缀表达式的时候就会比较麻烦,起初我也不太清楚该怎么处理他,后来经过一番分析与调试后,我觉得用二维数组存放比较好,那样实现起来就会比较简单,当然虽然这么说,其实实现起来也还是有一定的困难的,比如怎样去找到一个完整的字符串逻辑变元,找到之后又怎样存放等等。