合式公式
命题公式真值表
![命题公式真值表](https://img.taocdn.com/s3/m/b65feb1402020740be1e9b96.png)
说明:
(1)命题变元是没有真假值的,只有当命题变元用 确定的命题代入时,才得到一个命题,命题的真值 依赖于代换变元的那些命题的真值;
1-3 命题公式与翻译
(2) 不是所有由命题变元 ,常元 ,联结词和括号组成的字符串 都能成为命题公式.例如, P , P (Q ) 等不是命题公式.
定义 1-3.1 命题演算的合式公式,规定为: (1)单个命题变元本身是一个合式公式; (2)如果 A 是合式公式,那么 A 是合式公式; (3)如果 A 和 B 是合式公式,那么
1-3 命题公式与翻译
2、命题的翻译
练习 将下列命题符号化: (1)她既聪明又用功. (2)他虽聪明但不用功. (3)虽然这次语文考试的题目很难,但是王丽还是取得了好成绩. (4)张三或李四都可以做这件事. (5)一公安人员审查一起案件,事实如下,请将案件事实符 号化: 张三或李四盗窃了机房的一台电脑,若是张三所为,则作案 时间不能发生在午夜前;若李四的证词正确,则午夜时机房 的灯未灭; 若李四证词不正确,则作案时间发在午夜前; 午夜时机房的灯全灭了.
分配律
P (Q R) ( P Q) ( P R)
吸收律
P ( P Q) P , P ( P Q) P
1-4 真值表与等价公式
4.基本等价公式
德·摩根律 同一律 零律 否定律 (互补律) 条件式转化律 双条件转化律
( P Q) P Q , ( P Q) P Q
1-3 命题公式与翻译
1、命题公式(合式公式)
定义 1 由命题变元、常元、联结词、括号以规定的格式联结 起来的字符串称为命题公式,也称合式公式.命题公式中的命 题变元称为命题公式的分量.
例如,若 P 和 Q 是命题变元, 则下面式子均是命题公式
命题公式及分类(离散数学)PPT
![命题公式及分类(离散数学)PPT](https://img.taocdn.com/s3/m/75e3b37a195f312b3069a5ae.png)
练习
P32: 1.6:(3)(4) 1.7:(7-10)
19
说 公式A与B具有相同的或不同的真值表,是指真值表的最后 明 一列是否对应相同,而8 不考虑构造真值表的中间过程。
例1 求下列公式的真值表,并求成真赋值和成假赋值。
(1) ┐ (p∧q)→┐r
(2)(p∧┐p)(q∧┐q)
(3)┐(p→q)∧q∧r
9
三、命题公式的分类 定义1.9(重言式、永真式、可满足式)
(5) ┐q∨p
(3) ┐(p∧┐q)
12
例3 下列公式中,哪些具有相同的真值表? (1)p→q (2)┐q∨r (3)(┐p∨q)∧((p∧r)→p) (4)(q→r)∧(p→p)
13
习题:求公式┐(p→(q∧r))的真值表。
p q r q∧r p→(q∧r) ┐(p→(q∧r))
00 0 0
例如 F:{0,1}2{0,1},且F(00)=F(01)=F(11)=0,
F(01)=1,则F为一个确定的2元真值函数.
15
命题公式与真值函数
对于任何一个含n个命题变项的命题公式A,都 存在惟一的一个n元真值函数F与A的真值表相同.
下表给出所有2元真值函数对应的真值表, 每一个 含2个命题变项的公式的真值表都可以在下表中找 到.
(A→B),(AB)也是合式公式。 (4)只有有限次地应用(1)~(3)形式的符号串才
是合式公式。 合式公式也称为命题公式或命题形式,并简称 为公式。
2
关于合式公式的说明
合式公式的定义方式称为归纳定义或递归定义方式。
定义中引进了A,B等符号,用它们表示任意的合式公式,而不 是某个具体的公式,这与p, p∧q, (p∧q)→r等具体的公式是有 所不同的。
离散数学-----命题逻辑
![离散数学-----命题逻辑](https://img.taocdn.com/s3/m/539ffcaa0029bd64783e2c50.png)
离散数学-----命题逻辑逻辑:是研究推理的科学。
公元前四世纪由希腊的哲学家亚里斯多德首创。
作为一门独立科学,十七世纪,德国的莱布尼兹(Leibniz)给逻辑学引进了符号, 又称为数理逻辑(或符号逻辑)。
逻辑可分为:1. 形式逻辑(是研究思维的形式结构和规律的科学,它撇开具体的、个别的思维内容,从形式结构方面研究概念、判断和推理及其正确联系的规律。
)→数理逻辑(是用数学方法研究推理的形式结构和规律的数学学科。
它的创始人Leibniz,为了实现把推理变为演算的想法,把数学引入了形式逻辑中。
其后,又经多人努力,逐渐使得数理逻辑成为一门专门的学科。
)2. 辩证逻辑(是研究反映客观世界辩证发展过程的人类思维的形态的。
)一、命题及其表示方法1、命题数理逻辑研究的中心问题是推理,而推理的前提和结论都是表达判断的陈述句,因而表达判断的陈述句构成了推理的基本单位。
基本概念:命题:能够判断真假的陈述句。
命题的真值:命题的判断结果。
命题的真值只取两个值:真(用T(true)或1表示)、假(用F(false)或0表示)。
真命题:判断为正确的命题,即真值为真的命题。
假命题:判断为错误的命题,即真值为假的命题。
因而又可以称命题是具有唯一真值的陈述句。
判断命题的两个步骤:1、是否为陈述句;2、是否有确定的、唯一的真值。
说明:(1)只有具有确定真值的陈述句才是命题。
一切没有判断内容的句子,无所谓是非的句子,如感叹句、祁使句、疑问句等都不是命题。
(2)因为命题只有两种真值,所以“命题逻辑”又称“二值逻辑”。
(3)“具有确定真值”是指客观上的具有,与我们是否知道它的真值是两回事。
2、命题的表示方法在书中,用大写英文字母A,B,…,P,Q或带下标的字母P1,P2,P3 ,…,或数字(1),*2+, …,等表示命题,称之为命题标识符。
命题标识符又有命题常量、命题变元和原子变元之分。
命题常量:表示确定命题的命题标识符。
命题变元:命题标识符如仅是表示任意命题的位置标志,就称为命题变元。
离散数学 谓词逻辑
![离散数学 谓词逻辑](https://img.taocdn.com/s3/m/55ea8fd049649b6648d7476a.png)
例1 给定解释I1如下:
(1)个体域为自然数集合N; (2)N中的特定元素a=0; (3)F(x,y):x大于或等于y. 在解释I1下,求下列各式的真值: (1)(∀x)F(x,a);(2)(∀x∃y)F(x,y) 解 在解释I1下,公式分别解释为: (1)任何自然数都大于或等于零, 为真命题.
(2)对任一自然数x,都存在一自然数y使得x≥y, 为真命题.
4
例子
[例2-1.1] 张明是位大学生。 解:设S(x):x是大学生,c:张明, 一元谓词:表 则原句的谓词形式为S(c)。 示客体性质 [例2-1.2]我坐在张三和李四中间。 解:设S(x,y,z):x坐在y和z之间,i:我,z:张 三,l:李四, 多元谓词:表 示客体间关系 则原句的谓词形式为S(i,z,l)。
★从以上两命题的符号化可以看出,同一命题在不同个体域下 符号化的形式可能不同。
11
这里,M(x)称为特性谓词。应该注意 的是,全称量词和存在量词符号化时,引入 特性谓词时的形式是不同的。 用全称量词 符号化时,特性谓词作为条 件式的前件; 用存在量词符号化时则作为合取式的一 项。
12
对于任一给定的实数x,都存在着一个实数y,使得 x+y=0。 如果取个体域为实数集合 ∀ x ∃ y H(x, y ) 然而 ∃ y ∀ x H(x, y ): 存在着一个少数y,对于任一实数x,使得x+y=0
3
谓词的表示
客体词有两种:客体常元和客体变元。客体常 元表示具体的或特定的客体,一般用小写字母 a、b、c等表示;表示抽象的或泛指的客体的 词称为客体变元,常用小写字母x、y、z等表 示。 谓词,通常用大写的字母A、B、C等表示。
谓词填式:单独一个谓词不是完整的命题, 把谓词字母后填以客体所得的式子。
闭式F的解释公式的类型永真式矛盾式可满足式
![闭式F的解释公式的类型永真式矛盾式可满足式](https://img.taocdn.com/s3/m/cadda36fe518964bcf847c67.png)
例:
二、一阶逻辑中命题符号化
(1)所有的人都是要呼吸的。 M(x) H(x) (2)每个学生都要参加考试。 P(x) Q(x) (3)任何整数或者是正的或是负的。 I(x) R(x) N(x) (4) 没有不犯错误的人。 M(x) S(x)
(1)(x)(M(x) H(x))
(2)(x)(P(x) Q(x))
定义:设A为任一公式,若A中无自由出现的个体变 项,则称A是封闭的合式公式,简称闭式。
换名规则 将量词辖域中出现的某个约束出现的个 体变项及对应的指导变项,改成另一个辖域中未曾 出现过的个体变项符号,公式其余部分不变。
(x )(y )( p( x , z ) q( y )) s( x , y )
解: (u)(v )( p(u, z ) q(v )) s( x, y )
代替规则 对某个自由出现的个体变项用与原公 式中所有个体变项符号不同的变项符号去代替, 且处处代替。
((y)p(x, y) (z)Q(x, z)) (x)R (x, y)
解: ((y)p(u, y) (z)Q(u, z)) (x)R (x, t )
(3)(x)(I(x) (R(x)N(x))) (4)(x )(M( x ) S( x ))
x(M(x) S(x))
(5)发光的不都是金子。 L(X) B(x)
(x)(L(x) B(x))
x(L(x) B(x))
(6) 在北京工作的人未必都是北京人。A(x),Q(x)
量词:表示数量的词,包括全称量词和存在量词。
全称量词:符号“ ”称为全称量词,用 来表达“所有的”,“每一个”,“任一 个”,“凡”,“一切”等词。 存在量词:符号“ ”称为存在量词,用来表 达“某个”,“存在一些”,“至少有一个”, “对于一些”等词。
合式公式及赋值
![合式公式及赋值](https://img.taocdn.com/s3/m/9d91820d02020740be1e9bc5.png)
(a) A B,
B为n层公式
(b) A B C , A B C , A B C , A B C , A B C
其中B, C分别为i, j层公式且n maxi, j
例1.试求下列公式的层次: (p q) r , (( p q)) ((r s) p)
合式公式及赋值
一、合式公式
命题常元(常项):简单命题称为命题常元(真值确定) 命题变元(变项):真值可以变化的简单陈述句(真值不确定)
表示: p, q, r ,, pi , qi , ri , 注:同一符号是常元还是变元由条件及上下文确定 命题公式(合式公式):将命题变项用联结词及括号按一定逻辑关系 联接起来的符号串。
二、合式公式的赋值及真值表
合式公式的赋值:
设p1 , p 2 ,, p n 是出现在公式A中的全部命题变项, 给p1 , p 2 ,, p n 各指定一个真值,称为 对A的一个赋值或解释。
注:1、变项以下标形式出现的赋值 2、变项以字母顺序形式出现的赋值
问题:一个公式含有n个命题变项,其赋值有多少个?
真值表:将公式A在所有赋值情况下的取值情况列成的表
步骤:1.找公式的所有的命题变项(下标或字母顺序) 2.列出所有的赋值情况 3.按从低到高顺序写出公式的各个层次 4.对各个赋值计算各层次的真值,直到最后计算出公式的真值
例2.求下列公式的真值表,并指出成真赋值、成假赋值
(1) (p q) r (2) ( p p) (q q) (3) ( p q) q r
成真赋值、成假赋值
永真式(重言式): 永假式(矛盾式): 可满足式:
例3.下列公式中,哪些公式真值表相同
(1) p q (4)( p q) (q p)
程序判定合式公式
![程序判定合式公式](https://img.taocdn.com/s3/m/6b01596626d3240c844769eae009581b6bd9bd29.png)
合式公式的判定一、基本概念1、合式公式:(1)单个命题常项或变项是合式公式;(2)如果A是合式公式,则﹁A也是合式公式;(3)如果A,B是合式公式,则P∧Q、P∨Q、P→Q、P↔Q也是合式公式;(4)只有有限次地应用(1)~(3)所包含的命题变元,联结词和括号的符号串是合式公式。
2、设命题集合L p:C1,C2,……C n长度:语言构成元素的数目表达式u=v:指长度相等且从左向右比处处相等初始段:从最左端开始向右扫描结尾段:从最右端开始向左扫描二、编程思路假定给定的程序变量为U ,U为L p表达式,代表输入的带判定的字符串又记“*”代表“∧”,“∨”,“→",“↔"四种之一。
则:1、空表达式不是合适公式的表达式。
返回NO2、单独的一个符号是一个公式时,当且仅当此符号为命题符号3、如果U的长度大于1,则U 必须以“(”开头,否则不是合式公式,返回NO。
(1)如果U的第二个符号为一个表示否定的“﹁”,则U必须是可以匹配(﹁V)模式,其中V是一个表达式.否则U不是合式公式,即U是合式公式当且仅当V是合式公式。
于是,递归判断V是否为合式公式,转入1、重头开始判断.(2)如果U的第二个符号不是“﹁”。
则U一定要符合(A*B)模式。
①对U从左向右扫描,遇到“(A"停止,其中A是一个含有相同数目的“("和“)"的表达式,如果没有,则U不是合式公式,返回NO。
②对U从右向左扫描,遇到“B)”停止,其中B是一个含有相同数目“(”和“)”的表达式,如果没有,则U不是合式公式,返回NO。
③验证(A*B)的“*”是否是“∧”,“∨”,“←”,“↔”四种之一,如果不是,则U不是合式公式,返回NO.④递归判断A,B是否为合式公式,转入1、重头开始判断三、程序代码#include〈stdio。
h〉#include<string.h〉#include〈stdlib。
h>void check(char *str1);int main(void){int index = 1 ;int keyNum = 1 ;static char string[50] ;// 友好界面,循环使用判断while( index != 0 ){printf(”欢迎使用合式公式判断系统\n”);printf("合式公式()不可以省略\n");printf(”用- 表示非﹁\n”);printf("用* 表示与∧\n”);printf("用+ 表示或∨\n");printf("用〉表示蕴涵→\n”);printf("用~ 表示等值←→\n");printf(”请输入您要判断识别的字符串:\n");scanf("%s”,&string);check(string);printf(”请选择:0-—退出系统;1—-继续判断其它字符串\n”); scanf( "%d",&keyNum ) ;if(keyNum == 0){break;}else{continue;}}}// 合式公式字符串的判读void check(char *str1){char formal[50];int len = 0;// 获取字符串的长度并且去除空格while( *str1 != '\0’){if(*str1 != ’ '){formal[len] = *str1;len++;}str1++;}formal[len] = '\0’;printf(”字符串%s\t有效长度:%d\n”,formal,len);// 空字符串不是合式公式if(len == 0){printf(”字符串为空\n\t\t\tNO!\t\t该字符串不是合式公式\n");return;}// 单独的一个符号是一个公式时,当且仅当次符号为命题符号else if(len == 1){if(!isalpha(formal[0])){printf("字符串%s不是合适字母\n\t\t\tNO!\t\t该字符串不是合式公式\n”,formal);return;}else{printf(”\t\t\tYES!\t\t字符串%s 是合式公式\n",formal);return;}}// 如果U的长度大于,则U 必须以“(”开头,否则不是合式公式,返回NO.else{if( (formal[0]!= ’(') || (formal[len-1] != ')')){printf("字符串%s 没有以“(”开始或者以“)”结束\n\t\t\tNO!\t\t该字符串不是合式公式\n",formal);return;}else{// 如果U的第二个符号为一个表示否定的“﹁”,则U必须是可以匹配(﹁V)模式if(formal[1] == ’-’){char newstring[50] ;int i = 0;for(i = 0; i 〈 len — 3; i++){newstring[i] = formal[2+i];}newstring[i] = '\0’;check(newstring);// 递归判断V是否为合式公式}//如果U的第二个符号不是“﹁”。
2.2 一阶逻辑公式及解释
![2.2 一阶逻辑公式及解释](https://img.taocdn.com/s3/m/48ef0d3b10a6f524ccbf852d.png)
注意:
公式的解释与分类
给定公式 A=x(F(x)G(x)) 成真解释: 个体域N, F(x): x > 2, G(x): x > 1 代入得A=x(x > 2x > 1) 代入得A=x(x > 1x > 2) 真命题 假命题
成假解释: 个体域N, F(x): x > 1, G(x): x > 2 问: xF(x)xF(x) 有成真解释吗? No!
(6) 联结词符号:, , , ,
(7) 括号与逗号:( , ) , ,
2
项
定义2.2 项的定义如下: (1) 个体常项和个体变项是项.
(2) 若 (x1, x2, …, xn)是任意的n元函数, t1, t2, …,
tn是任意的n个项,则 (t1, t2, …, tn) 是项.
(3) 所有的项都是有限次使用 (1), (2) 得到的.
x为指导变项, A中x的两次出现均为约束出现,
y与z均为自由出现.
6
例2.6 指出下列公式中,量词的辖域以及个体变项的 自由出现与约束出现: (1) x (F(x, y, z) yG(x, y)) 自由出现 约束出现 (2) xF(x, y)∧G(x, y)
自由出现 约束出现 (3) xy(F(x)∧G(y) H(x, y))
( p q ) q ( p q ) q 0
作业: P60 3,6,8
18
xF(x)xF(x) 有成假解释吗? No!
11
例2.7 给定解释 I 如下: (a) 个体域 D = N (b) a 2 (c) f ( x, y) x y, g ( x, y) xy (d) 谓词 F ( x, y ) : x y 说明下列公式在 I 下的涵义, 并讨论真值。 (1) xF(g(x, a), x) x(2x=x) 假命题 假命题
离散数学知识汇总
![离散数学知识汇总](https://img.taocdn.com/s3/m/b3987aecaef8941ea76e05b6.png)
离散数学笔记第一章命题逻辑合取析取定义 1. 1.3否定:当某个命题为真时,其否定为假,当某个命题为假时,其否定为真定义 1. 1.4条件联结词,表示“如果……那么……”形式的语句定义 1. 1.5双条件联结词,表示“当且仅当”形式的语句定义 1.2.1合式公式(1)单个命题变元、命题常元为合式公式,称为原子公式。
(2)若某个字符串A 是合式公式,则⌝A、(A)也是合式公式。
(3)若A、B 是合式公式,则A ∧B、A∨B、A→B、A↔B 是合式公式。
(4)有限次使用(2)~(3)形成的字符串均为合式公式。
1.3等值式1.4析取范式与合取范式将一个普通公式转换为范式的基本步骤1.6推理定义 1.6.1 设 A 与 C 是两个命题公式, 若 A → C 为永真式、 重言式,则称 C 是 A 的有 效结论,或称 A 可以逻辑推出 C ,记为 A => C 。
(用等值演算或真值表)第二章 谓词逻辑2.1、基本概念∀:全称量词 ∃:存在量词一般情况下, 如果个体变元的取值范围不做任何限制即为全总个体域时, 带 “全称量词”的谓词公式形如"∀x(H(x)→B(x)),即量词的后面为条件式,带“存在量词”的谓词公式形如∃x(H(x)∨WL(x)),即量词的后面为合取式 例题R(x)表示对象 x 是兔子,T(x)表示对象 x 是乌龟, H(x,y)表示 x 比 y 跑得快,L(x,y)表示x 与 y 一样快,则兔子比乌龟跑得快表示为: ∀x ∀y(R(x)∧T(y)→H(x,y))有的兔子比所有的乌龟跑得快表示为:∃x ∀y(R(x)∧T(y)→H(x,y))2.2、谓词公式及其解释定义 2.2.1、 非逻辑符号: 个体常元(如 a,b,c)、 函数常元(如表示22y x 的 f(x,y))、 谓词常元(如表示人类的 H(x))。
定义 2.2.2、逻辑符号:个体变元、量词(∀∃)、联结词(﹁∨∧→↔)、逗号、括号。
离散数学第1章命题公式与翻译 真值表与等价公式
![离散数学第1章命题公式与翻译 真值表与等价公式](https://img.taocdn.com/s3/m/6a3d53db28ea81c758f578cd.png)
这个合式公式的定义,是以递归形式给出的,其 中(1)称为基础,(2)(3)称为归纳,(4)称为界限。
按照定义,下列公式都是合式公式: ┐(P∧Q),┐(P→Q),(P→(P∨┐Q), (((P→Q)∧(Q→R)) (S T)) 而 (P→Q)→(∧Q),(P→Q,(P∧Q)→Q) 等都不是合式公式。
在这里,请注意和的区别与联系: 区别:
是逻辑联结词,它出现在命题公式中;
不是逻辑联结词,它表示两个命题公式的一种
关系,不属于这两个公式的任何一个公式中的符 号。
2、等价公式的证明方法: ⑴真值表法
例题5 证明 P Q (P→Q) ∧(Q→P) 证明 列出其值表 表 1-4.7
注意
由表1-4.4 (表1-4.2)可以看出,有一类公式不论命 题变元作何种指派,其真值永为真(假),我们把这 类公式记为T(F)。 在真值表中,命题公式真值的取值数目,决定于 分量(命题变元)的个数。例如,由2个命题变元 组成的命题公式共有四种可能的真值,由3个命题 变元组成的命题公式共有八种真值。一般说来,n 个命题变元组成的命题公式共有2n种真值情况。
同理(P∧Q)∨(┐P∧┐Q)与P 同,如表1-4.6所示。 表1-4.6 P Q P T T T F F T F F T F F T Q
Q对应的真值相
(P∧Q)∨(┐P∧┐Q) T F F T
二、等价公式
1.定义
定义1-4.2 给定两个命题公式A和B,设P1, P2,……,Pn为所有出现于A和B中的原子变 元,若给P1,P2,……,Pn任一组真值指派, A和B的真值都相同,则称A和B是等价的或逻 辑相等。记作A B。
P T T F F
命题公式真值表
![命题公式真值表](https://img.taocdn.com/s3/m/1589a52d1ed9ad51f11df20e.png)
(4) (P Q) (P Q);
(5) (P Q) (P Q).
A
6
1-4 真值表与等价公式
解 (1) P Q 的真值表为:
P
Q
T
T
T
F
F
T
F
F
P Q
T F T T
(2) P Q 的真值表为:
P
Q
PQ
T
T
T
T
F
F
F
T
T
F
F
T
A
7
1-4 真值表与等价公式
(3) (P Q) P 的真值表为:
(1)单个命题变元本身是一个合式公式;
(2)如果 A 是合式公式,那么 A是合式公式;
(3)如果 A 和 B 是合式公式,那么
A B , A B , A B, A B 是合式公式;
(4)当且仅当能够有限次地应用(1)、(2)、(3)
所得到的包含命题变元,联结词和括号的字符串
是合式公式.
A
3
1-3 命题公式与翻译
A 中的 X 用Y 置换,所得公式 B 与公式 A 等价,即 A B .
例 4 证明: Q (P (P Q)) Q P
例 5 证明下列等价式
(1) (P Q) (P Q) P ;
(2) P (Q R) Q (P R) .
练习 证明 P (Q R) (P Q) R
A
14
1-4 真值表与等价公式
例 6 化简下列命题公式: (1) P (P (Q P)) (2) (P Q) (Q P)
说明:
(1)命题变元是没有真假值的,只有当命题变元用 确定的命题代入时,才得到一个命题,命题的真值 依赖于代换变元的那些命题的真值;
合式公式真值表等价置换定理 第二课
![合式公式真值表等价置换定理 第二课](https://img.taocdn.com/s3/m/d8a9782acfc789eb172dc8af.png)
1 ∧ 2 ∧ 3 ⇔T 变换为( ∧…… ∧ ) ∨ ( ∧…… ∧ ) 的形式 排除( ∧…… ∧ ) 中Pi ∧ Pj的可能即可。A2, C1, D ¬ (( P → Q ) ∧ P ) ⇔ T
Q ∨ ¬ (( P → Q ) ∧ P ) ⇔ Q ∨ ¬ (( ¬ P ∨ Q ) ∧ P ) ⇔ Q ∨ ¬ (( ¬ P ∧ P ) ∨ ( Q ∧ P )) ⇔ Q ∨ ¬ (Q ∧ P ) ⇔ Q ∨ (¬ Q ∨ ¬ P ) ⇔
2、等价定理与常用等价式 、 定理: 和 是两个命题公式 是两个命题公式, 当且仅当A 定理:A和B是两个命题公式,A ⇔ B当且仅当 当且仅当 证明: 证明 (1)由A ⇔ B 知,在所有可能的真值指派下,A、B的真值总是 相同的,从而,A ↔ B是一个重言式。 (2)由A ↔ B为重言式, 可知:在所有可能的真值指派下,A、 B的真值总是相同的,所以A ⇔ B。 注意:“当且仅当” 注意: 当且仅当” 的证明需要分为 仅当” “当”和“仅当” 两个部分 B是一个重言式。 是一个重言式。 是一个重言式
对应于所有可能的真值指派, 、 的真值都相同 的真值都相同。 对应于所有可能的真值指派,A、B的真值都相同。又称 为两命题公式逻辑相等。记为: 为两命题公式逻辑相等。记为:A ⇔ B 思考: ((P →Q) ( P ∨ Q))在真值表中值有何特征? 思考 ( ) )
例2 :永真式和永假式 P T T F F 定义3 定义 Q T F T F ¬P∨P ∨ T T T T
2. 命题演算的合式公式 • 基础 (1). 单个命题变元本身是个合式公式;
约定(1)最外层的括号可以省去 • 归纳 约定 如果A是一个合式公式,那么 A也是一个合式公 (2). 最外层的括号可以省去 式; (2)运算符优先次序: , ∧, ∨, →, 运算符优先次序: 运算符优先次序
命题的合式公式
![命题的合式公式](https://img.taocdn.com/s3/m/b699356b9b6648d7c1c7465d.png)
计算机科学M O O C课程群离散数学基础•我们会逐渐进入命题逻辑的形式讨论:我们对命题只注意其命题形式,对联结词只注意其逻辑意义。
•命题逻辑合式公式的定义给出了命题逻辑研究的对象范围。
所有符合定义的合式公式构成合式公式空间,它可被视为命题逻辑的符号化语言。
语言的结构包括符号表、语法规则(即合适公式定义)和语义(也即真值)。
•定义:符号化语言 Lp 的符号表包括−小写英文字母:p, q, r, … 称为命题变量(或原子变量)。
所有可能出现的命题变量的集合记为 Var;−命题联结词:包括五个联结词 ¬, ∧, ∨, →, ↔;−助记符:包括左右两个小括号 (, )。
•定义:命题逻辑的合式公式 (wff, well‐formed formula)•一个命题变量 p 是一个 wff;•若 A 是 wff,则 (¬A) 也是 wff;•若 A, B 是 wff,则 (A∧B), (A∨B), (A→B), (A↔B) 也是wff;•当且仅当有限次使用上述规则得到的才是 wff。
上述定义是一个归纳定义,1)是归纳基始,2) 3)是归纳步,4)是最小化规则命题逻辑的合式公式以下简称为公式•定义:联结词的优先级−规定联结词的运算优先级从高到底为:¬ ∧ ∨ → ↔−书写公式时,在不引起误解的情况下,可以省略部分小括号。
»例:(p→(q∧r))可写成 p→(q∧r), 或 p→q∧r•定义:真值赋值函数−具有形式 t:Var→{0,1} 的函数,它为变量表 Var 中的每个命题变量 p∈Var 指派一个真值 (1/0)。
»例:Var = {p, q},可以定义赋值函数t如下:t(p)=0,t(q)=1•定义:真值赋值函数−在含有 n 个命题变量的 Var上,可以定义的赋值函数有 2n 个,称为对此 n 个命题变量的 2n 个解释。
»例:对 Var={p, q},可以有 2n=4个不同的解释:t0(p)=0,t0(q)=0; t1(p)=0,t1(q)=1;t2(p)=1,t2(q)=0; t3(p)=1,t3(q)=1;•定义:合式公式的真值−设下述 A, B, C 都是合式公式。
数学的组合公式
![数学的组合公式](https://img.taocdn.com/s3/m/2d82942c59fafab069dc5022aaea998fcc22408f.png)
数学的组合公式摘要:1.组合公式的定义和意义2.组合公式的计算方法3.组合公式的应用实例4.组合公式的扩展和推广正文:一、组合公式的定义和意义组合公式,又称组合数公式,是组合数学中的一种重要概念,用于计算从n 个不同元素中取出m 个元素的不同组合数量。
组合公式的数学表达式为C(n,m),其中n 表示元素总数,m 表示选取元素的数量。
组合公式可以直观地反映出组合问题的计算规律,对于解决实际问题具有重要的意义。
二、组合公式的计算方法组合公式的计算方法有多种,其中最常见的是数学归纳法和二项式定理。
下面分别介绍这两种方法:1.数学归纳法数学归纳法是一种基于归纳推理的证明方法,通过验证基础情况和归纳步骤来证明公式的正确性。
对于组合公式C(n,m),我们可以通过数学归纳法证明其计算公式为:C(n,m) = n! / (m!(n-m)!)其中n! 表示n 的阶乘,即n! = n * (n-1) * (n-2) *...* 1。
2.二项式定理二项式定理是组合数学中的一种重要定理,可以将组合公式转化为二项式展开式的形式。
根据二项式定理,我们有:C(n,m) = (1 + 1)^n / (1 + 1)^m * C(n-1,m) + (1 + 1)^n / (1 +1)^(m+1) * C(n-1,m-1)通过二项式定理,我们可以将组合公式的计算转化为二项式展开式的计算,从而简化计算过程。
三、组合公式的应用实例组合公式在实际问题中有广泛的应用,下面举一个简单的实例:一个班级有5 名学生,现在需要从中选出3 名学生参加数学竞赛,请问有多少种不同的选法?根据组合公式,我们可以计算出:C(5,3) = 5! / (3!(5-3)!) = 10因此,这个班级有10 种不同的选法来参加数学竞赛。
四、组合公式的扩展和推广组合公式可以进一步扩展和推广,例如在组合公式的基础上引入权重,可以得到加权组合公式;在组合公式的基础上引入计数,可以得到排列公式。
三项立方合公式
![三项立方合公式](https://img.taocdn.com/s3/m/c54e5c59e97101f69e3143323968011ca300f73b.png)
三项立方合公式好的,以下是为您生成的关于“三项立方合公式”的文章:咱们来聊聊这个有点复杂但又挺有趣的“三项立方合公式”。
我还记得有一次,我给一群初中生讲这个公式的时候,那场景可真是让人哭笑不得。
有个小同学瞪着大眼睛,一脸迷茫地看着我,嘴里还嘟囔着:“老师,这都是啥呀,感觉比外星人的语言还难懂。
”我笑着对他说:“别着急,咱们一步一步来。
”这三项立方合公式啊,就像是一个神秘的密码,解开它就能打开数学世界里的一扇新大门。
咱们先来说说这公式长啥样。
它是 (a + b + c)³ = a³ + b³ + c³ + 3a²b +3a²c + 3b²a + 3b²c + 3c²a + 3c²b + 6abc 。
是不是看起来有点头大?别慌,咱们慢慢拆解。
比如说,a³、b³、c³这几项,就是每个字母自己立方的结果。
这就好像是每个小伙伴自己的小天地,独立又特别。
而3a²b、3a²c 这些呢,就像是小伙伴之间的互动和交流,互相影响,产生新的东西。
为了让大家更好地理解,咱们来做个小练习。
假设 a = 2,b = 3,c= 4 。
那咱们把这些数字代入公式里算算看。
先算 a³,就是 2³ = 8 ;b³呢,是 3³ = 27 ;c³是 4³ = 64 。
接下来算 3a²b ,a²是 2² = 4 ,所以 3a²b = 3×4×3 = 36 。
就这样一项一项地算,最后把结果加起来,看看是不是和直接用 (a + b + c)³算出来的一样。
在学习这个公式的过程中,大家可别死记硬背。
要多动手算算,多想想每个部分的意义。
就像搭积木一样,一块一块地搭建起自己的知识大厦。
合数公式知识点
![合数公式知识点](https://img.taocdn.com/s3/m/633e3e9ba48da0116c175f0e7cd184254b351b03.png)
合数是指大于1且不是素数的自然数。
在数学中,合数公式是指能够表示合数的一般形式或规律。
通过合数公式,我们可以快速地判断一个数是否为合数,并找到它的因数。
本文将介绍一些常见的合数公式知识点,帮助读者更好地理解和运用这些公式。
1.除法测试:最简单的判断一个数n是否为合数的方法是通过除法测试。
我们可以从2开始,依次将n除以2、3、4、5……直到n的平方根。
如果存在一个数能够整除n,即n mod i = 0,则n为合数。
否则,n为素数。
2.因数分解:当我们确定一个数是合数后,进一步找到它的因数是很有用的。
因为合数可以被分解为多个因数的乘积。
常见的因数分解方法有试除法和辗转相除法。
试除法是从最小的质数2开始,依次判断是否能整除合数n,如果可以,则将n除以该质数,并重复此步骤直到n为1。
辗转相除法是将合数n除以一个质数p,如果能整除,则将n除以p,否则将p加1,并重复此步骤直到n为1。
3.欧拉函数:欧拉函数是指小于等于n且与n互质的正整数个数,记作φ(n)。
对于合数n,欧拉函数的计算方法是先将n分解为质因数的乘积,然后根据欧拉函数的性质φ(ab) = φ(a) * φ(b)(a和b互质),计算出每个质因数的欧拉函数值,并相乘得到φ(n)。
例如,对于合数n=12,其质因数分解为2^2 * 3^1,因此φ(n) = φ(2^2) * φ(3^1) = (2-1) * (3-1) = 2。
4.合数的性质:合数有一些特殊的性质,利用这些性质可以更快地判断一个数是否为合数。
例如,合数一定能够被合数整除,即合数一定有大于1且小于它本身的因数。
此外,合数一定能够被其平方根范围内的质数整除。
例如,对于合数n=12,其平方根为√12 ≈ 3.464,我们只需要判断2和3是否能够整除12即可。
5.连续整数的性质:合数也有一些与连续整数相关的性质。
例如,对于任意大于1的自然数n,n与n+1一定互质。
因此,当我们判断n是否为素数时,只需要判断n是否能被2到√n之间的质数整除即可,无需判断n是否能被n+1整除。
离散数学定义定理(上)
![离散数学定义定理(上)](https://img.taocdn.com/s3/m/94fd1dcc51e2524de518964bcf84b9d528ea2cab.png)
离散数学定义定理1.3.1命题演算的合式公式规定为:(1)单个命题变元本身是一个合式公式。
(2)如果A是合式公式,那么┐A是合式公式。
(3)如果A和B是合式公式,那么(A∨B)、(A∧B)、(A→B)、(A B)、都是合式公式。
(4)当且仅当有限次地应用(1)(2)(3)所得到的包含命题变元,连接词和圆括号的符号串是合式公式。
1.3.2设A i是公式A的一部分,且Ai是一个合式公式,称A i是A的子公式。
1.3.3设P为一命题公式,P1,P2,……,P n为出现在P中的所有命题变元,对P1,P2,……,P n指定一组真值称为对P的一种指派。
若指定的一种指派,使P的值为真,则称这组指派为成真指派。
若指定的一种指派,使P的值为假,则称这种指派为成假指派。
含n个命题变元的命题公式,共有2n个指派。
1.3.4给定两个命题公式A和B,设P1,P2,……,P n为所有出现于A和B中的原子变元,若给P1,P2,……,P n任一组真值指派,A和B的真值都相同,称A和B是等价的,记做A <=>B。
1.3.5设A为一命题公式,若A在它的各种指派情况下,其取值均为真,则称A为重言式或永真式。
1.3.6设A为一命题公式,若A在它的各种指派情况下,其取值均为假,则称A为矛盾式或永假式。
1.3.7设A为一命题公式,若A在它的各种指派情况下至少存在一组成真指派,则称A为可满足式。
1.4.1设X式合式公式A的子公式,若有Y也是一个合式公式,且X<=>Y,如果将A中的X用Y置换,得到公式B,则A<=>B。
1.4.2设A,B为两个命题公式,A<=>B,当且仅当A ←→B为一个重言式。
P=>Q称做P蕴含Q或蕴含式,又称永真条件式。
蕴含式有下列性质:(1)对任意公式A,又A=>A;(2)对任意公式A,B和C,若A=>B,B=>C,则A=>C;(3)对任意公式A,B和C,若A=>B,A=>C,则A=>(B∧C);(4)对任意公式A,B和C,若A=>C,B=>C,则A∨B=>C.1.4.3设P,Q为任意两个命题公式,P<=>Q的充分必要条件式P=>Q,,Q=>P。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
命题逻辑中的合式公式判断程序
#include<stdio.h>
#include<string.h>
int Isformula(char *a);
int main()
{
char str[30],x;
while(1)
{
printf("please input a string:\n");
printf("分别用!表示非,用&表示合取,用|表示析取,用-表示条件,用=表示双条件\n");
scanf("%s",str); //字符串的输入
if(Isformula(str)) /*str是数组名,代表数组中第一个元素的地址,
将该地址作为实参传递给指针变量,即让指针指向数组
*/
printf("%s是个合式公式\n",str);
else printf("%s这不是个合式公式\n",str); //字符
串的输出
printf("请选择:输入0退出系统;输入1继续判断其它字符串\n");
scanf("%d",&x);
if(x==0)
break;
else
continue;
}
return 0;
}
int Isformula(char *a)
{
char A[30];
int i,l=0,r=0,n;
for(n=0;*a!='\0';n++) /* 该过程类似于合式公式字符串的复制,即将主函数中的
str数组中的元素一一复制给被调函数中的A数组中的空间
*/
{
A[n] =*a;
a++;
}
A[n] = '\0';
if((A[0]<='Z'&&A[0]>='A')||(A[0]>='a'&&A[0]<='z')) {
if(strlen(A)==1) //如果只剩下一个字符
return 1;
else
return 0;
}
if (A[0]=='('&&A[n-1]==')')
{
if(A[1]=='!') //判断“(”“!”“)”这种格式
{
A[n-1]='\0';
Isformula(&A[2]); //去掉“(”“!”“)”这种格式,继续调用
}
else
{
for(i=1;i<n-1;i++)
{
if(A[i]=='(') //排除两端的括号,从左向右逐个扫描
l++;
if(A[i]==')')
r++;
if(l==r)
break; //括号成对出现,就跳出循环
}
}
if((A[i+1]=='&'||A[i+1]=='|'||A[i+1]=='-'||A[i+1]=='=')) //判断左右部分连接词是否正确
{
A[n-1]='\0';
A[i+1]='\0';
if (Isformula(&A[1])&&Isformula(&A[i+2])) //判断左右部分是否是合适公式
return 1;
}
}。