离散数学复习笔记(已完结) 您所在的位置:网站首页 离散数学set 离散数学复习笔记(已完结)

离散数学复习笔记(已完结)

2024-07-10 06:42| 来源: 网络整理| 查看: 265

目录 前言数理逻辑命题逻辑基本概念命题等价命题蕴含对偶与范式推理理论 谓词逻辑基本概念谓词演算的等价式与蕴含式谓词演算的推理推论 集合论基本概念特殊运算运算性质包容排斥原理(容斥原理) 序偶与笛卡尔积关系关系的基础概念关系的性质复合关系和逆关系闭包运算集合的划分等价关系与等价类相容关系序关系 函数基本概念复合函数、特征函数与基数 代数系统代数结构基本概念半群、群、子群阿贝尔群、循环群置换群陪集和拉格朗日定理同态和同构环与域 格和布尔代数格的基本概念特殊的格 布尔代数 图论基本概念和性质特殊的图欧拉图汉密尔顿图平面图对偶图与着色树与生成树根树

前言

本篇为《离散数学》学科的个人复习笔记,知识点有所偏重。 课本是上海科学技术文献出版社左孝凌版的《离散数学》。 课本中定义和定理过多,文章中只记录课本中和课堂上重要常用的的定义和定理,不会做深入的解释,会有一些疏漏。 因为部分符号打不出来,所以中间插入的图片会比较多。 已完结。如有错误烦请提出。 以下是正文

离散数学主要分为四部分:

数理逻辑集合论代数系统图论 数理逻辑

古典逻辑

亚里士多德的三段论:

大前提 --> 小前提 --> 结论

莱布尼兹把推理归纳为符号计算,提出思维运算的思想。 布尔发明布尔代数,(亦可解释为集合代数) 摩根几乎同时独立地作出重要贡献 弗雷格第一个提出公理化谓语逻辑系统“概念文字”,是亚里士多德以来逻辑的重大进展,基本实现莱布尼兹的梦想。

数理逻辑的内容:

命题逻辑 谓词逻辑 公理化集合论 递归论 证明论

命题逻辑 基本概念

定义:

命题是一个能判断真假的陈述句

命题不能是疑问句、命令句、感叹句等

真值的几点说明:

时间性 区域性 标准性

定义:

对于一个任意给定的命题,如果不能分解为更简单的命题,就称为原子命题,反之,成为复合命题。

命题联结词

否定,合取,析取,蕴含(条件)、等值

在这里插入图片描述

在这里插入图片描述 需要注意的有:

条件(蕴含):当且仅当 P 为真,Q 为假时,P→Q 为假;否则, P→Q 均为真。 条件 → 决定了哪个作为前件,哪个作为后件。双条件(等值):当且仅当P、Q相同的时候,P↔Q为真,否则为假。优先级:

否定 > 合取 > 析取 > 条件 > 双条件

不可兼或 (不可兼析取):▽ (与异或相似) 在这里插入图片描述

在这里插入图片描述例题: 在这里插入图片描述 公式分类

赋值永远是“真”值的式子称为永真公式,又称重言式。

赋值永远是“假”值的式子称为永假公式,又称矛盾式。

既有真值又有假值的式子称为可满足式

在这里插入图片描述

命题等价

定义

如果对两个公式A,B不论作何种指派,它们的真值均相同,则称A,B是逻辑等价的,亦说A等价于B,记A⇔B.

定理

命题公式A⇔B的充要条件是A↔B为永真式。

常用等价式:

在这里插入图片描述 除了利用真值表的方法证明两个命题公式的等价,还可以采用等价代换(等价置换)的方法进行证明。

利用公式的等值演算,可以实现以下三个基本目的 判定命题公式的基本类型,即判定或证明一个命题公式为永真或永假 证明两个命题公式之间具有等值关系 对复杂的命题公式进行化简。

命题蕴含

定义

命题公式A称为永真蕴含命题公式B,当且仅当A→B是一个永真式,记作:A=>B 注意 A=>B 与 A→B 的区别

在这里插入图片描述 其他联结词的补充: 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述

对偶与范式

对偶 在这里插入图片描述在这里插入图片描述

范式 在这里插入图片描述 在这里插入图片描述 简单合取式又称小项,真值表中小项为“真”,全体小项的析取式(即为主析取范式)为永真式。 简单析取式又称大项,真值表中大项为“假”,全体大项的合取式(即为主合取范式)为永假式。

对于任意命题公式,都存在与其等值的析取范式和合取范式。 真值表中小项为真,大项为假。

例:离散数学程序实验(C语言)——程序求主析取范式和主合取范式 输入一个逻辑表达式,根据真值表法求取该表达式的主合取范式和主析取范式。

算法思路: 把命题公式改为后缀表达式,并把后缀处理的结果保存在结构体里,对各个逻辑运算符号进行优先级的定义,按照后缀表达式的方法进行赋值计算并将结果输出存储为真值表。按照真值表选择输出主合取范式和主析取范式。 (此处附上实验代码仅供参考)

#include #include #define T 1 #define F 0 struct Stack{ int top; char zf[80]; }number={-1},symbol={-1}; //number储存后缀表达式结果 //symbol 操作符栈,用来保存操作符 int book[26];//记录变元元素和个数 int num=0;//记录变元的个数 int alphabet_true_false[26]; int enum_result[80]; char str_copy[80]; void numbers(char str[]); void strings(char str[]); void reverse_polish(char s[]); int check(int num); void function(int num); int main() { int i=0; char str[80]; printf("**************************************\n"); printf("使用小写字母表示变元,\n使用‘&’表示合取,\n使用‘|’表示析取,\n使用‘>’表示条件,\n使用‘


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有