《普通逻辑》学习记录——命题的判定与自然推理
目录
一、真值
1.1、真值联结词
1.2、真值联结词与逻辑联结词的区别
1.3、真值形式
1.3.1、真值符号的优先级和结合性规则
1.4、真值规则
1.4.1、条件式(蕴含式) P → Q 的真值规则
1.4.2、双条件式(等值式) P ↔ Q 的真值规则
1.5、函数
1.5.1、数学中的函数概念
1.5.2、逻辑学中的函数概念
1.5.3、真值函数(也叫真值函项)
1.5.3.1、真值函数的种类
1.5.4、重言式
二、命题的真值判定方法
2.1、真值表法
2.2、归谬赋值法
三、命题的自然推理
3.1、一些概念
3.2、自然推理系统的主要规则
四、练习题
上海人民出版社《普通逻辑(第五版)》学习记录
一、真值
真和假是命题仅有的两个值。统称为“真值”。
1.1、真值联结词
用于定义复合命题的真值如何依赖于其肢命题真值的联结词。
有五个:
- 否定(¬)
- 合取(∧),即逻辑与
- 析取(∨),即逻辑或
- 条件,也叫蕴含(→),即如果...就一定...
- 双条件,也叫等值(↔),即当且仅当
这和逻辑联结词看起来一样,二者有何区别呢?
1.2、真值联结词与逻辑联结词的区别
二者是紧密相关的,大多数时候被认为是同义的。
联结词具有两个功能:
- 将肢命题组合成复合命题。在发挥这个功能时联结词叫做逻辑联结词。
- 确定复合命题的真假。在发挥这个功能时联结词叫做真值联结词。
例1:
P:今天下雨。
Q:我带了伞。
可以使用联结词来构建复合命题。例如:
合取(∧):“今天下雨且我带了伞。”(P ∧ Q)
析取(∨):“今天下雨或我没有带伞。”(P ∨ ¬Q)
这里用联结词将单个命题组合成更复杂的表达式。(联结词发挥了作用:在生成一个复合命题的过程中起联结作用。即并没有涉及到复合命题的真假的讨论)这时候的联结词叫做逻辑联结词。
例2:
假设:
P(今天下雨)是真的。
Q(我带了伞)也是真的。
那么根据真值表,可以得出:
对于合取命题 P∧Q(今天下雨且我带了伞),因为两个肢命题都是真的,所以这个复合命题也是真的。
对于析取命题 P∨¬Q(今天下雨或我没有带伞),由于 P 是真的,即使 ¬Q(即“我没有带伞”)是假的,整个析取命题仍然是真的。
在这种情况下,联结词的功能是根据各个肢命题的真假来决定整个复合命题的真假。(复合命题的真假由肢命题的真假和联结词的性质决定。联结词发挥了作用:参与确定复合命题的真假)这时候的联结词叫做真值联结词。
1.3、真值形式
由命题变项(用字母如 P、Q、R 等表示)和真值联结词组成的表达式。
它的结果(即整个表达式的真值)完全取决于其中命题变项的真值。也就是说,只要确定了命题变项是真还是假,通过真值联结词的运算规则,就能确定整个真值形式的真假。
基本形式:
- 合取式:P ∧ Q
- 析取式:P ∨ Q
- 条件式(蕴含式):P → Q
- 双条件式(等值式):P ↔ Q
- 否定式:¬P
1.3.1、真值符号的优先级和结合性规则
1、优先级规则
从高到低的优先级顺序为:否定(¬)>合取(∧)>析取(∨)>蕴含(→)>等值(↔)
例:表达式 ¬P ∧ Q → R
首先计算 ¬P,然后进行 ¬P 与 Q 的合取操作(¬P ∧ Q),最后考虑蕴含关系(¬P ∧ Q) → R。
2、结合性规则
否定(¬)
只对紧跟其后的一个命题变元起作用,不存在结合性的问题。
合取(∧)和析取(∨)
具有结合性,它们满足结合律。例如:(P ∧ Q) ∧ R = P ∧ (Q ∧ R)。
在没有括号的情况下,从左到右依次进行运算。例如,在表达式 P ∧ Q ∧ R 中,先计算 P ∧ Q,然后再将结果与 R 进行合取。
蕴含(→)
不满足结合律,即(P → Q)→ R 与 P →(Q → R)是不同的逻辑表达式。
等值(↔)
不满足结合律,即 (P ↔ Q)↔ R 与 P ↔ (Q ↔ R)是不同的逻辑表达式。
括号
可以改变运算的顺序,当需要改变默认的优先级顺序时,就要使用括号。
1.4、真值规则
1.4.1、条件式(蕴含式) P → Q 的真值规则
用这个例子说明:
P:下雨了。
Q:地面湿了。
P → Q:如果下雨地面会湿。
1、T-T
确实下雨了(P),而且地面确实变湿了(Q)。这与“如果下雨地面会湿”(P → Q)的表述一致,P → Q 描述的情况发生了。
2、T-F
如果确实发生了下雨了(P),但是地面没有变湿(¬Q),比如有遮挡物且雨很小的情况。P → Q 描述的情况没有发生。
3、F-T(重点)
如果没有下雨(¬P),但是地面变湿了(Q),这种情况照理来说无法判断“如果下雨地面会湿”(P → Q)是否会成立。
实际上如果前提 P 为假,而结论 Q 为真,那么整个命题 P → Q 仍然是真的。
这种情况可能看起来有些反直觉,但在逻辑学中,当一个条件的前提不成立时,无论结论是什么,这个条件总是被视为真实的。这是因为该条件无法否定结论。
一个约定
在逻辑推理与论证的语境中,可将 “当无法证伪时,逻辑关系暂且被认为是真的” 作为一种实用的约定方式。这是因为,倘若在无法证伪时便认定逻辑关系为假,那么在面对复杂的逻辑推理和论证情境时,会不可避免地滋生大量矛盾与不确定性因素,从而致使逻辑推理的进程难以有效推进。
然而,需要明确的是,这种 “无法证伪即为真” 的约定并非绝对可靠,它只是在特定的认知局限与推理需求背景下的一种权宜之计。在科学探索以及逻辑分析的进程中,人们依然期望能够通过更为坚实的证据、严谨的证明或者充分的事实依据来确切判定逻辑关系的真假,而非单纯依赖于能否证伪这一单一标准。
4、F-F
如果没有下雨(¬P),而且地面没有湿(¬Q),这也无法证伪“如果下雨地面会湿”(P → Q)。依据上述的约定,这种情况 P → Q 也被认为是真。
1.4.2、双条件式(等值式) P ↔ Q 的真值规则
用这个例子说明:
P:我会带伞。
Q:我预估明天下雨。
P ↔ Q:我会带伞当且仅当我预估明天下雨。
1、T-T
我会带伞(P),我预估明天下雨(Q)。那么这与“我会带伞当且仅当我预估明天下雨”(P ↔ Q)的描述是一致的。
2、T-F
我会带伞(P),且我预估明天不会下雨(¬Q)。那么这与“我会带伞当且仅当我预估明天下雨”(P ↔ Q)是矛盾的。(P ↔ Q)描述的情况没有发生。
3、F-T
我不会带伞(¬P),且我预估明天下雨(Q)。那么这与“我会带伞当且仅当我预估明天下雨”(P ↔ Q)是矛盾的。(P ↔ Q)描述的情况没有发生。
4、F-F
双条件式实际上等价于:(P → Q)∧(Q → P)。
本例中:
- P → Q:如果我会带伞,那么一定是我预估了明天下雨。
- Q → P:如果我预估明天下雨,那么我一定会带伞。
参见上面的1.4.1的第四点。
我不会带伞(¬P)且我预估明天不会下雨(¬Q),都不能证伪 P → Q 和 Q → P ,所以依据上面说的约定,它的真值是 true。
1.5、函数
1.5.1、数学中的函数概念
从定义域到值域的映射。每个来自定义域的输入元素都恰好对应一个值域中的输出元素。
例:
计算一个数平方的函数: f(x) = x^2 。即着对于定义域中的每一个 ( x ),输出 ( f(x) ) 就是 ( x ) 的平方。
1.5.2、逻辑学中的函数概念
一种接受一个或多个输入(参数)并根据这些输入计算出唯一确定输出(结果)的规则或表达式。
例1,自动售货机:
函数:选择商品并投入相应金额 -> 输出商品。
逻辑规则:如果选择了商品A,并且投入了足够的钱(例如2元),则输出商品A;否则,不输出商品并且可能返回投入的硬币。
例2,交通信号灯:
函数:时间 + 当前颜色 -> 下一个颜色。
逻辑规则:如果当前是绿灯并且经过了一定的时间,则变为黄灯;如果是黄灯,则变为红灯;如果是红灯,则变为绿灯。这个过程可以根据预设的时间间隔和当前状态确定下一个状态。
例3,图书馆借书系统:
函数:会员ID + 图书ID -> 借阅确认或拒绝。
逻辑规则:如果会员有良好的信用记录并且所选书籍可借,则允许借阅;否则,拒绝借阅请求。
1.5.3、真值函数(也叫真值函项)
一种特殊的函数(特殊的规则或表达式)。
接受一个或多个命题变量(真或假)作为输入,并根据定义的规则产生一个逻辑值(真或假)作为输出,以此构建复合命题。
真值函数的定义域和值域的取值都是真值。
它的行为可以通过真值表展示,其中列举所有可能的输入组合及其对应的确定性输出。
例:
P:天气好
Q:我有空闲时间
可以定义一个逻辑函数 F(P, Q) 来决定是否去公园散步,它的结果是真值,即 F(P, Q) = P ∧ Q。
可以写作:
- F(1,1) = 1
- F(1,0) = 0
- F(0,1) = 0
- F(0,0) = 0
1.5.3.1、真值函数的种类
根据真值函数的取值情况,可将不同的真值函数分成几类:
1、永真式/重言式
不论命题变元如何取值,真值函数的值总是 true。
例:P ∨ ¬P。
2、矛盾式(常假的)
不论命题变元如何取值,真值函数的值总是 false。
例:P ∧ ¬P。
3、可满足式
真值函数的值与命题变元相关,即存在某些命题变元的取值使得真值函数的值为 true,也存在某些取值使得真值函数的值为 false。
例:P ∧ Q,P ∨ Q。
1.5.4、重言式
重言式是最常用的真值函数,因为命题逻辑中一切正确的推理形式均表现为重言式。
也就是说:
一个推理形式:
∵A₁, A₂, …, Aₙ
∴A
是有效的,当且仅当命题形式 (A₁∧A₂∧…∧Aₙ)→A 是重言式。
- 推理是从一组前提推导出一个结论的过程。
- 推理形式是指这种推导过程的逻辑结构,而不涉及具体命题的内容。
- 一个推理形式是正确的,当且仅当在所有前提为真的情况下,结论必然为真。
所以正确的推理形式保证了如果前提是真的,那么结论一定是真的。
- 重言式的性质就是无论其中的命题变元如何取值,整个公式总是为真。
- 把一个正确的推理形式转化为一个逻辑公式时,这个公式必然是重言式。因为它满足在前提变元的任何取值组合下,只要前提为真,结论就为真,这与重言式的定义相符合。
二、命题的真值判定方法
如上所说,一个推理形式是有效的,当且仅当命题形式重言式。也就是判定了一个蕴涵式(→)或等值式(↔)是否是重言式,就判定了它所代表的推理形式是否正确,即判定了相应的推理是否逻辑有效。
为了判定一个命题形式是否为重言式,可以寻找一种判定程序,这种程序应是机械的,并且在有穷步骤内能够完成。
这里主要介绍真值表法和归谬赋值法。
2.1、真值表法
以真值形式: (P → Q)∧(¬Q → ¬P)为例。
步骤一:找出给定真值形式里的所有变项,列出这些变项的各种真值组合。
此例变项为 P、Q,其真值组合为:
步骤二:根据真值形式的构成过程,由简而繁地列出一个真值形式的各个组成部分,最后一栏为该形式本身。
步骤三:计算出每栏中各组成部分的真值,最后得出该形式的真值。
由最后一栏可知该形式的真值不是在所有情况下都是 true,所以它是可满足式。
书上的2个例子:
2.2、归谬赋值法
真值表法涉及到的项数越多,表格的行数列数就越多越复杂。
归谬赋值法是为了简化真值表法而被发明出来的,它只能处理条件式或能转化成条件式的双条件式(双条件式可以分解成两个条件式)和析取式(也就是等值命题)。但是由于需要判定真值的式子往往是条件式(它代表了推理形式),所以此方法是非常有用的。
它的原理:
对于一个条件式 P → Q,先假设它为假,也就是假设其前件为真而后件为假。如果在这种假设下出现矛盾(比如某个变元既真又假),那么就说明原蕴含式是重言式;如果不出现矛盾,就说明原蕴含式不是重言式。
下面用一个例子来说明,判断:((P → Q)∧ ¬Q)→ ¬P 是否为重言式。
步骤一:假设整个式子为假。
因为对于条件式 A → B 为假当且仅当 A 为真而 B 为假(见此博文的4.1的第四点)。所以令((P → Q)∧ ¬Q)为真,¬P 为假。
步骤二:对后件进行推导。
此例的后件是 ¬P,推导如下:
- 因为 ¬P 为假,所以 P 为真。
步骤三:对前件进行推导。
此例前件为((P → Q)∧ ¬Q),推导如下:
- 因为((P → Q)∧ ¬Q)为真,所以(P → Q)为真,且 ¬Q 为真。
- 因为 ¬Q 为真,所以 Q 为假。
步骤四:检查是否有矛盾之处。
已知 P 为真、Q 为假、P → Q 为真。这是有矛盾的。
由于假设公式((P → Q)∧ ¬Q)→ ¬P 为假会导致矛盾,所以这个公式作为真值函数的值总是true 的,也就是这个公式是重言式。
三、命题的自然推理
3.1、一些概念
1、形式语言
一种人工语言,按照精确的语法规则和符号系统构建的,用于对特定的概念、推理或结构进行严格的表述。
形式语言由两部分构成:
- 符号集:包括逻辑常项(如 “¬”、“∧”、“∨”、“→”、“↔” 等)和逻辑变项(如 P、Q、R 等)。这是前面一直在使用的。
- 语法规则:规定了如何使用符号来组合成公式。
2、逻辑演算系统
用于研究逻辑推理的系统。以形式语言为基础,通过明确的规则来对逻辑公式进行变形和推导,从而实现对逻辑关系的精确处理。
例:
“∧”符号表示的语法规则是“逻辑与”;用 P、Q 表示两个命题。
如果 P、Q 都成立,那么根据“逻辑与”的性质,可以推导:P ∧ Q 也成立。
3、公理化系统
一种特殊的逻辑演算系统。它从一组被认为是 “不证自明” 的公理出发,通过严格的逻辑推理规则,推导出一系列定理。
组成部分:
- 公理:基本假设,是公理化系统的基础。例如,在欧几里得几何公理化系统中,“过两点能作且只能作一直线” 就是一条公理。公理都是被设定为真的命题,不需要在该系统内进行证明。
- 推理规则:和逻辑演算系统类似,有一套推理规则用于从公理推导出定理。
- 定理:是在公理和推理规则的基础上得到的逻辑结论。例如,在几何中,根据公理和推理规则可以推导出 “三角形内角和为 180 度” 这样的定理。
特点:
- 严谨性:每一个定理都必须基于公理或者已经证明了的其他定理,通过严格的逻辑推理得出。这保证了系统的每个部分都是建立在坚实的基础之上。
- 系统性:公理化系统试图将一个领域内的所有知识组织成一个连贯的整体。所有的概念、定义、定理等都应该在这个体系内有其明确的位置,并且彼此之间存在逻辑联系。
- 非唯一性:对于同一个研究对象或领域,可能存在多组不同的公理集,每组公理都能构建出一套有效的理论体系。不同选择的公理可能会导致完全不同的结果,但也可能产生等价的理论体系,即两个或多个理论在某种程度上可以互换使用而不影响其有效性。
- 独立性和一致性:理想的公理化系统中的公理应该是相互独立的(即没有一个公理是可以由其它公理推导出来的),并且该系统是一致的(即不存在自相矛盾的情况)。
- 完备性:在一个完备的公理化系统中,任何可以用该系统语言表达的命题都可以被证明为真或假。然而,哥德尔不完备定理表明,在包含足够复杂算术的任何形式系统中,总会存在一些命题既不能被证明也不能被证伪。
- 解释性:公理化系统可以用于描述现实世界的现象,也可以作为抽象思维的工具。它们提供了一种方式来探索和理解复杂的概念和关系。
4、自然推理系统
一种形式化的逻辑演算系统,在形式语言的基础上增加若干推理规则(无须设定公理)而构成。
它的特点是更贴近人们日常的思维和推理方式。它没有像公理化系统那样预先设定的公理,而是以假设和推理规则为核心,通过引入和消除假设来进行逻辑推导。
例:
出门是否带伞的决策过程:
- 假设引入:早上你看到天气预报说有的降雨概率。你在考虑出门是否要带伞,此时你引入一个假设:“今天会下雨”。这就相当于在自然推理系统中引入了一个假设,用于后续的推理。
- 推理过程:基于 “今天会下雨” 这个假设,你开始思考。如果下雨,你不带伞就会被淋湿,而你不想被淋湿,所以你需要带伞来避免被淋湿。推理过程就是根据假设和一些已知的规则(在这个例子中,规则是 “下雨且不带伞会被淋湿” 以及 “不想被淋湿”)进行推导。
- 假设消除:最后,你得出一个结论:“如果今天会下雨,那么我就带伞”。这个结论就相当于把之前引入的 “今天会下雨” 这个假设进行了消除,将其整合进了一个条件语句中。现在这个结论不再依赖于 “今天真的会下雨” 这个假设本身是否成立。即使最后没有下雨,这个条件语句在逻辑上依然是合理的。
3.2、自然推理系统的主要规则
- 同一律:A → A
- 假言推理:如果前提中有 A 和 A → B,则可以推出 B。
- 条件引入:如果在假设 A 的情况下可以推导出 B,那么可以得出 A → B 的推论。
- 合取引入:如果前提中有 A 和 B,则可以得出 A ∧ B 的推论。
- 合取消除:如果前提中有 A ∧ B,则可以推出 A 和 B。
- 析取引入:如果前提中有 A,则可以得出 A ∨ B;同样地,如果前提中有 B,则可以得出 A ∨ B。
- 析取消除:如果前提中有 A ∨ B,并且从 A 可以推导出 C,从 B 也可以推导出 C,则可以得出 C。
- 归谬法:如果在假设 A 的情况下可以推导出矛盾 B ∧ ¬B,那么可以得出 ¬A。
- 双重否定消除:前提中有 ¬¬A,则可以得出 A。
- 等值引入:如果从 A 可以推导出 B,并且从 B 可以推导出 A,则可以得出 A ↔ B。
- 可以在推导中的任何地方引入一个公式作为假设前提。
这11条主要规则中前面10条都非常简单,容易理解。
第11条的要说明的是,只要能在推理过程中把前面引入的假设消除掉,如使用规则3、7、8、10来消除假设,使结论不再依赖于假设而存在,就可以随意引入。
例:
使用自然推理证明:如果一个平面图形是三角形(P),那么它的三个内角和等于180°(Q)。
- 引入假设:根据规则(11),引入假设 P,即假设 “一个平面图形是三角形”。
- 依据几何知识推导:已知如果一个平面图形是三角形,那么根据欧几里得几何学的公理可知它的三个内角和等于 180°,也就是在假设 P 成立的情况下,能够得到 Q 成立。(这里相当于利用了利用外部知识(几何学原理)来辅助逻辑推理过程)。
- 运用条件引入规则得出结论:因为我们在假设 P 的情况下推导出了 Q ,根据上述规则(3),如果在假设 P 的情况下可以推导出 Q,那么可以得出 P → Q 的推论。也就是使用规则(3)消除了假设,使得结论不再依赖于假设,即使一个图形平面不是三角形,“如果一个平面图形是三角形,那么它的三个内角和等于180°”也是成立的。
四、练习题
1、((p→q)∧(r→q)∧(p∨r))→q
- 先假设前件真而后件假;
- 后件假,即q为假;
- 前件真则(p→q)为真,(r→q)为真,(p∨r)为真;
- q为假,(p→q)为真,则可知p为假;
- p为假,(r→q)为真,则可知r为假;
- p为假且r为假与(p∨r)为真矛盾了;
- 所以假设不成立,该式是重言式。
2、(p→q)∧(p→r)↔(p→q∨r)
根据此博文的4.1的第6点。先假设这个等值式的负命题成立,即前后件不等值。
1、前件真而后件假的情况:
- (p→q)∧(p→r)为真则(p→q)、(p→r)为真;
- (p→q∨r)为假则p真、q∨r为假;
- q∨r为假即q为假和r也为假;
- (p→q)为真则p和q同真假,这已经与上面的推理不符合;
- 所以负命题前件真后件假的情况不成立。
2、前件假而后件真的情况:
- (p→q)∧(p→r)为假则(p→q)、(p→r)二者至少有一个是假的;
- (p→q)为假时,p为真q为假。这时候:p真,q假,r不确定。
- (p→r)为假时,p为真r为假。这时候:p真,q不确定,r假。
- 也就是可以确定p为真的,q和r中至少一个是假的。
- (p→q∨r)为真则有两种情况:情况A:p为假,则q和r的真假不能确定,这与上面p为真的推理不符合。情况B:p为真,则q和r都为真,这与上面q和r中至少一个是假的推理不符合。
- 所以负命题前件假而后件真的情况不成立。
所以假设不成立,该式是重言式。
3、(p→q)∧(q→r)→(p→r)
- 先假设前件真而后件假;
- (p→r)假,则p为真,r为假;
- (p→q)∧(q→r)真,则(p→q)、(q→r)都是真;
- (p→q)为真且p为真,所以q为真;
- q为真,r为假,这与(q→r)为真矛盾了;
- 所以假设不成立,该式是重言式。
1、p∧p→p
使用合取消除规则(如果前提中有 A ∧ B,则可以推出 A 和 B),从 p∧p 可以推出p。
相关文章:

《普通逻辑》学习记录——命题的判定与自然推理
目录 一、真值 1.1、真值联结词 1.2、真值联结词与逻辑联结词的区别 1.3、真值形式 1.3.1、真值符号的优先级和结合性规则 1.4、真值规则 1.4.1、条件式(蕴含式) P → Q 的真值规则 1.4.2、双条件式(等值式) P ↔ Q 的真值规则 1.…...

道可云人工智能元宇宙每日资讯|崂山区政务服务虚拟大厅启用
道可云元宇宙每日简报(2024年12月31日)讯,今日元宇宙新鲜事有: 崂山区政务服务虚拟大厅启用 近日,崂山区政务服务“虚拟大厅”在青岛正式上线,成为该市首个采用虚拟现实、人工智能、大数据及3D虚拟数字人…...

高并发写利器-组提交,我的Spring组件实战
高并发写优化理论 对于高并发的读QPS优化手段较多,最经济简单的方式是上缓存。但是对于高并发写TPS该如何提升?业界常用的有分库分表、异步写入等技术手段。但是分库分表对于业务的改造十分巨大,涉及迁移数据的麻烦工作,不会作为…...

音视频入门基础:MPEG2-PS专题(4)——FFmpeg源码中,判断某文件是否为PS文件的实现
一、引言 通过FFmpeg命令: ./ffmpeg -i XXX.ps 可以判断出某个文件是否为PS文件: 所以FFmpeg是怎样判断出某个文件是否为PS文件呢?它内部其实是通过mpegps_probe函数来判断的。从《FFmpeg源码:av_probe_input_format3函数和AVI…...

如何使用OpenCV进行抓图-多线程
前言 需求: 1、如何使用OpenCV捕抓Windows电脑上USB摄像头的流、 2、采用多线程 3、获知当前摄像头的帧率。 这个需求,之前就有做了,但是由于出现了一个问题,人家摄像头的帧率目前都可以达到60帧/s 了,而我的程序…...

电子应用设计方案86:智能 AI背景墙系统设计
智能 AI 背景墙系统设计 一、引言 智能 AI 背景墙系统旨在为用户创造一个动态、个性化且具有交互性的空间装饰体验,通过融合先进的技术和创意设计,提升室内环境的美观度和功能性。 二、系统概述 1. 系统目标 - 提供多种主题和风格的背景墙显示效果&…...

【《python爬虫入门教程11--重剑无峰168》】
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 【《python爬虫入门教程11--selenium的安装与使用》】 前言selenium就是一个可以实现python自动化的模块 一、Chrome的版本查找?-- 如果用edge也是类似的1.chrome…...

.net core 线程锁,互斥锁,自旋锁,混合锁
线程锁、互斥锁、自旋锁和混合锁是多线程编程中的重要概念,它们用于控制对共享资源的访问,避免数据竞争和不一致性。每种锁有其特定的适用场景和特点。我们来逐一解释它们,并进行比较。 1. 线程锁(Thread Lock) 线程…...

【DevOps】Jenkins项目发布
Jenkins项目发布 文章目录 Jenkins项目发布前言资源列表基础环境一、Jenkins发布静态网站1.1、项目介绍1.2、部署Web1.3、准备gitlab1.4、配置gitlab1.5、创建项目1.6、推送代码 二、Jenkins中创建gitlab凭据2.1、创建凭据2.2、在Jenkins中添加远程主机2.3、获取gitlab项目的UR…...

C# OpenCV机器视觉:霍夫变换
在一个阳光灿烂得近乎放肆的午后,阿强的实验室就像被施了魔法的科学城堡,到处闪耀着神秘的科技光芒。阿强呢,像个即将踏上惊险征程的探险家,一屁股坐在那堆满奇奇怪怪设备的桌前,眼神中透露出按捺不住的兴奋劲儿&#…...

Kraft模式安装Kafka(含常规、容器两种安装方式)
一、#创作灵感# 公司使用Kafka的软件项目较多,故写技术笔记巩固知识要点 二、软件环境 - Kafka 3.9.0 官方下载地址:Kafka 3.9.0 - Docker Desktop 4.37 容器图形化工具 官方下载地址:Docker Desktop 4.37 特别说明 - Docker Desktop…...

Linux驱动开发(16):输入子系统–电容触摸驱动实验
有关电容触摸的基础知识内容可以参考野火STM32相关教程,这里只介绍电容触摸驱动的相关内容。 本章配套源码、设备树以及更新固件位于“~/embed_linux_driver_tutorial_imx6_code/linux_driver/touch_scream_GTxxx”目录下。 触摸面板通过双面胶粘在显示屏上&#…...

《深入浅出HTTPS》读书笔记(24):椭圆曲线密码学
《深入浅出HTTPS》读书笔记(24):椭圆曲线密码学 为了保证DH的密钥对不被破解,提升安全性的主要手段就是增加密钥对的长度,但是长度越长,性能越低。 为了解决性能问题,需要…...

现代光学基础5
总结自老师的讲义 yt5 开卷考试复习资料:光探测器与光伏技术 目录 光探测器(Photodetector) 工作原理二极管电路连接方式响应度(Responsivity)微弱光检测超导纳米线单光子探测光电二极管噪声 太阳能电池࿰…...

力扣hot100——贪心
121. 买卖股票的最佳时机 class Solution { public:int maxProfit(vector<int>& a) {if (a.size() 1) return 0;int ans 0;int mi a[0];for (int i 1; i < a.size(); i) {ans max(ans, a[i] - mi);mi min(mi, a[i]);}return ans;} };55. 跳跃游戏 class S…...

vue3如何实现防抖?
第一 防抖就是我们设置一个调用时间,点击后设置时间开始倒计时,如果再次点击会重新倒计时 npm或yarn安装: npm install lodash <template><div click"debouncedInputHandler"><button>打印</button>…...

西安电子科技大学初/复试笔试、面试、机试成绩占比
西安电子科技大学初/复试笔试、面试、机试成绩占比 01通信工程学院 02电子工程学院 03计算机科学与技术学院 04机电工程学院 06经济与管理学院 07数学与统计学院 08人文学院 09外国语学院 12生命科学与技术学院 13空间科学与技术学院 14先进材料与纳米科技学院 15网络与信息安…...

spring mvc源码学习笔记之六
pom.xml 内容如下 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/P…...

树莓派4b如何连接ov7670摄像头
在树莓派4B上连接和使用OV7670摄像头是一项具有一定技术挑战的任务。这是因为OV7670摄像头是一个原始的CMOS摄像头模块,它通过并行接口与主机通信,而树莓派的GPIO接口通常用于串行接口(如I2C、SPI、UART)通信,不直接支持并行摄像头接口。因此,需要一些额外的硬件和软件工…...

[微服务]分布式搜索Java客户端
快速入门 使用RestClient客户端进行数据搜索可以分为两步 构建并发起请求 代码解读: 第一步,创建SearchRequest对象,指定索引库名第二步,利用request.source()构建DSL,DSL中可以包含查询、分页、排序、高亮等 query…...

如何使用 `uiautomator2` 控制 Android 设备并模拟应用操作_VIVO手机
在 Android 自动化测试中,uiautomator2 是一个非常强大的工具,能够帮助我们通过 Python 控制 Android 设备执行各种操作。今天,我将通过一个简单的示例,介绍如何使用 uiautomator2 控制 Android 设备,执行特定的应用启动、广告跳过以及其他 UI 操作。此示例的目标是自动化…...

在Ubuntu 18.04.6 LTS安装OpenFace流程
一、修改配置:将gcc8,g8作为默认选项 sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-8 100 sudo update-alternatives --config gcc 选择版本,再查看gcc --version sudo update-alternatives --install /usr/bin/g g /usr/bin/g-…...

C 语言的整型提升问题
目录 引言 一、什么是整型提升 二、为什么会有整型提升 三、整型提升的规则 四、整型提升的影响 五、如何避免整型提升带来的问题 六、总结 引言 在 C 语言中,整型提升(Integer Promotion)是一个常常被忽视但却非常重要的概念。理解整…...

第0章 机器人及自动驾驶SLAM定位方法全解析及入门进阶学习建议
嗨,各位同学大家好!笔者自985硕士毕业后,在机器人算法领域已经深耕 7 年多啦。这段时间里,我积累了不少宝贵经验。本专栏《机器人工程师带你从零入门SLAM》将结合下面的SLAM知识体系思维导图及多年的工作实战总结,将逐…...

video.js视频播放上手
html案例 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><title>videojs视频播放</title> </head> <link href"https://cdnjs.cloudflare.com/ajax/libs/video.js/7.3.0/video-js.min.cs…...

【LLM-Agent】Building effective agents和典型workflows
note Anthropic的工程经验: 大道至简,尽量维护系统的简洁;尽量让过程更加透明(因为你依赖的是LLM的决策,如果只看输出不看过程,很容易陷入难以debug的情况);对LLM需要调用的工具&am…...

《量子比特大阅兵:不同类型量子比特在人工智能领域的优劣势剖析》
在科技的前沿,量子比特与人工智能的融合正开启一扇全新的大门。不同类型的量子比特,如超导、离子阱、光量子等,在与人工智能结合时展现出独特的优势与劣势。 超导量子比特 超导量子比特是目前应用较为广泛且研究相对成熟的量子比特类型。它…...

《探秘开源大模型:AI 世界的“超级引擎”》
《探秘开源大模型:AI 世界的“超级引擎”》 一、开源大模型崛起之路二、开源大模型发展历程回顾(一)早期奠基:理论突破与初步实践(二)快速发展:百花齐放的模型格局(三)当下态势:走向成熟与多元融合三、开源大模型核心技术剖析(一)Transformer 架构:基石之稳(二)…...

el-table行列转换简单版,仅限单行数据
原始数据格式如下,如果不是此格式,请转换成以下格式在进行以下操作 [{ label: name, value: Tom },{ label: age, value: 25 },{ label: country, value: UK } ]代码如下 <template><el-table :data"tableData" style"width: …...

2025年1月4日蜻蜓q旗舰版st完整开源·包含前后端所有源文件·开源可商用可二开·优雅草科技·优雅草kir|优雅草星星|优雅草银满|优雅草undefined
2025年1月4日蜻蜓q旗舰版st完整开源包含前后端所有源文件开源可商用可二开优雅草科技优雅草kir|优雅草星星|优雅草银满|优雅草undefined 产品介绍: 本产品主要贡献者优雅草科技优雅草kir|优雅草星星|优雅草银满|优雅草undefined-青史留名,时光如川浪淘…...