数字逻辑笔记5丨2.3逻辑表达式的形式与转换

我昨天听这节课的时候,发现这次的内容和离散数学里面的知识几乎是一样的诶!!!
如果离散的知识学好了,那么这节的内容简直就是手到擒来呀!
可惜这两门课我都是才接触,用的很生疏,看来在梳理知识点的同时还是要多多练练题啊。
下面的内容全是概念和一些公式,很基本的,用来温故知识很不错
我不会导入表格和在电脑上使用特殊的数学符号,所以我会把不好弄的地方都上传成图片
用电脑端看的话还是很清晰的。

逻辑函数表达式的基本形式

“与-或”表达式

  • 由若干“与项”进行“或”运算构成的表达式
  • “与项”可以是单个变量的原变量,可以是单个变量的反变量,也可是多个原变量或反变量相“与”
  • “与项”=“积项”
  • “与-或”表达式=“积之和”表达式

“或-与”表达式

  • 由若干“或项”进行“与”运算构成的表达式
  • “或项”可以是单个变量的原变量,可以是单个变量的反变量,也可是多个原变量或者反变量相“或”。
  • “或项”=“和项”
  • ”或-与“表达式=”和之积“表达式

任何一个逻辑函数,其表达式都不是唯一的。
两种基本形式

逻辑表达式可以被表示成任意的混合形式
无论什么形式都可以变换成两种基本形式

在这里插入图片描述

最小项和最大项

由于两种基本形式都不是唯一的
为了在逻辑问题的研究中使逻辑函数能和唯一的表达式对应,引入了逻辑函数表达式的标准形式。
标准形式建立在最大项最小项概念的基础上。

最小项

定义:

  • 具有n个变量的函数的”与项“包含全部n个变量
  • 每个变量都以原变量或反变量形式出现一次,且仅出现一次
  • 该”与项“被称为”最小项“,有时又称”标准与项“
    最小项的数目:n个变量可以构成2的n次方个最小项,简写成mi

性质:

  1. 任意一个最小项,其相应变量有且仅有一种取值使这个最小项的值为1,最小项不同,使其值为1的变量取值也不同,任何一种变量取值都不可能使两个不同最小项同时为1
  2. 相同变量构成的两个不同最小项相与为0
  3. n个变量的全部最小项相或为1
  4. n个变量构成的最小项有n个相邻最小项

最大项

定义:

  • 如果一个具有n个变量的函数的”或项“包含全部n个变量
  • 每个变量都以原变量或反变量形式出现一次,且仅出现一次
  • 该或项被称为最大项,有时又称”标准或项“
  • n个变量可以构成2的n次方个最大项

下标i的取值规则:

  • 原变量用0表示,反变量用1表示
  • 由此得到一个二进制数,与该二进制对应的十进制数就是下标的值了。

性质:

  • 任意一个最大项,其相应变量有且仅有一种取值使这个最大项的值为0,最大项不同,使其值为0的变量取值不同。
  • 相同变量构成的两个不同最大项相或为1
  • n个变量的全部最大项相与为0
  • n个变量构成的最大项有n个相邻最大项(相邻最大项:除一个变量互为相反外,其余部分均相同的最大项)

最小项和最大项的关系

在同一问题中,下标相同的最小项和最大项互为相反数
相同变量构成的最小项mi和最大项Mi之间存在互补关系。

逻辑函数表达式的标准形式

标准与或表达式:由若干最小项相或构成的逻辑表达式
标准或与表达式:由若干最大项相与构成的逻辑表达式

逻辑函数表达式的转换

代数转换法
真值表转换法
在这里插入图片描述

在这里插入图片描述

  • 15
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
### 回答1: Python学习笔记|字符串与正则表达式练习题答案 1. 练习题1: 题目:给定一个字符串s,找出其中的连续的最长的数字串。 答案:可以通过正则表达式来匹配数字串,然后使用max函数找出最长的。 代码示例: import re def find_longest_num_str(s): num_str_list = re.findall('\d+', s) longest_str = max(num_str_list, key=len) return longest_str s = "ab1234c56789def" print(find_longest_num_str(s)) 输出:56789 2. 练习题2: 题目:给定一个字符串s,将其中的每个空格替换为"%20"。 答案:可以通过正则表达式的sub函数来实现替换。 代码示例: import re def replace_space(s): new_s = re.sub(' ', '%20', s) return new_s s = "Hello World" print(replace_space(s)) 输出:Hello%20World 3. 练习题3: 题目:给定一个字符串s,判断它是否为回文字符串。 答案:可以使用切片操作将字符串反转,然后与原字符串进行比较。 代码示例: def is_palindrome(s): return s == s[::-1] s = "abcba" print(is_palindrome(s)) 输出:True ### 回答2: 以下是关于字符串和正则表达式练习题的答案: 1. 给定一个字符串s,编写一个函数,返回该字符串的反转字符串。 def reverse_string(s): return s[::-1] 2. 给定一个字符串s,编写一个函数,返回是否是回文字符串。 def is_palindrome(s): return s == s[::-1] 3. 给定一个字符串s和一个字符c,编写一个函数,返回字符串s中字符c的出现次数。 def count_char(s, c): return s.count(c) 4. 给定一个字符串s,编写一个函数,返回字符串s中的所有单词列表。 def split_words(s): return s.split() 5. 给定一个字符串s,编写一个函数,返回字符串s中的所有数字列表。 import re def extract_numbers(s): return re.findall(r'\d+', s) 这只是一些可能的答案,其中的解决方法可以有很多种。每个问题都有不同的解决方案,具体取决于个人的编程风格和需求。希望这些答案能够帮助你理解和学习Python中的字符串和正则表达式
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值