当前位置: 首页 > news >正文

【计科】计算机科学与技术,从离散数学到软件工程,从理学/抽象/科学到工学/具体/技术

【计科】计算机科学与技术,从离散数学到软件工程,从理学/抽象/科学到工学/具体/技术

文章目录

    • 1、发展史与桥梁(离散数学 -> 算法/数据结构 -> 软件工程)
    • 2、离散数学(数理逻辑-命题/谓词/集合/函数/关系 -> 代数结构与图论)
    • 3、软件工程(需求 -> 结构/对象设计 -> 测试 -> 质量/成熟度/运维)

1、发展史与桥梁(离散数学 -> 算法/数据结构 -> 软件工程)

从离散数学(理学/抽象/科学)到软件工程(工学/具体/技术)的发展过程,本质上是数学理论通过工程化思维转化为实际技术的过程。
这一链条体现了科学到工程的跨越,其核心在于 抽象模型的具象化理论工具的实用化

1. 抽象理论 => 工程思维的转换

  • 从数学对象到编程实体
    抽象数学概念:集合、函数、关系、图、树、格(Lattice)、布尔代数等。
    工程化实现
    集合 → 编程语言中的Set数据结构(如Python的set)。
    函数 → 编程中的子程序/方法(纯函数与副作用控制)。
    图 → 邻接表/矩阵的存储结构(如社交网络的图数据库)。
    关键转换:数学的“无类型”抽象被赋予具体类型和内存表示(如整数溢出处理)。
  • 从命题逻辑到代码逻辑
    抽象理论:命题逻辑、谓词逻辑、一阶逻辑。
    工程应用
    条件分支(if-else)对应逻辑蕴含(P → Q)。
    循环不变式(Loop Invariant)依赖谓词逻辑验证。
    形式化规范工具(如TLA+)将数学逻辑转换为可执行检查的模型。

2. 科学严谨性 => 工程权衡

  • 理想化假设 vs 现实约束
    数学场景:算法复杂度分析假设无限内存、均匀耗时操作(如O(1)哈希查询)。
    工程现实
    缓存局部性、内存碎片化实际影响性能。
    哈希冲突时退化为O(n)链表查询(需动态扩容优化)。
  • 精确性 vs 鲁棒性
    数学追求:算法的正确性证明(如Dijkstra算法的最优性)。
    工程妥协
    超时机制(防止最坏情况下的无限等待)。
    启发式方法(如A*算法的估计函数h(n)未必满足数学可纳性)。
  1. 技术演化路径
  • 图论 => 网络技术
    抽象理论:欧拉回路、哈密顿路径、最大流最小割定理。
    技术实现
    TCP/IP路由协议(OSPF使用Dijkstra算法)。
    内容分发网络(CDN)的图分区优化。
  • 代数结构 => 密码学
    抽象理论:群、环、域、有限域上的椭圆曲线。
    技术实现
    AES加密(有限域GF(2^8)的字节代换)。
    区块链(椭圆曲线数字签名算法ECDSA)。
  • 自动机理论 => 编译器/正则引擎
    抽象理论:DFA/NFA、正则语言、下推自动机。
    技术实现
    Lex/Yacc词法语法分析器。
    正则表达式引擎(如PCRE库的NFA回溯优化)。

4.离散数学对比软件工程

维度离散数学(理学)软件工程(工学)
目标追求普遍性、严谨证明解决具体问题、权衡效率与可维护性
表达形式符号化(∀, ∃, ⇒)代码化(API设计、设计模式)
验证方式数学归纳法、反证法单元测试、静态分析、模糊测试
优化方向理论下界(如NP完全问题)工程优化(缓存、并行化、预计算)

5.互相促进的过程

  • 离散数学为软件工程提供 “设计语言”(如状态机描述系统)和 “质量标尺”(如复杂度边界)
  • 工程实践则通过以下方式丰富理论:
    暴露新问题(如并发环境下的离散事件建模);
    验证实用性(如NP难问题的启发式算法有效性);
    需求倒逼创新(如差分隐私将概率论引入数据安全)。
  • 这一过程并非单向流动,而是 “抽象→具象→再抽象” 的螺旋上升,最终推动理论与技术共同演进。

6. 算法与数据结构的 “桥梁”与“翻译器”角色

  • 它既将抽象的数学理论转化为可落地的技术方案,同时为工程实践提供科学化的方法论支撑
  • 理论到实践的转化器
    递归(数学归纳法的程序表达)、动态规划(组合优化问题的递推解法)等,将数学思维直接映射为程序逻辑。
  • 工程问题的科学化解题框架
    数据结构(如树、哈希表)提供了组织数据的标准化模板,算法(如排序、搜索)定义了处理数据的流程规范。
    如数据库索引-B树(高效磁盘I/O);缓存淘汰策略-LRU算法(基于哈希表+双向链表)。
  • 抽象思维与工程思维的融合
    离散数学研究“问题是否存在解”,而算法与数据结构回答“如何高效实现解”。 最后软件工程实现问题的解。
    例如:NP完全问题(理论) =>启发式算法(工程妥协); 形式语言与自动机(抽象模型) => 正则表达式引擎(具体工具)。
    约束条件下的创新:工程需要平衡效率、可维护性、扩展性等,算法设计需**在数学最优性(如动态规划的最优子结构)与现实约束(如内存限制)**间折中。

参考资料:1

2、离散数学(数理逻辑-命题/谓词/集合/函数/关系 -> 代数结构与图论)

知识点概念:

  • 考试分析
    第1章 命题与命题公式(命题的符号化、逻辑联结词(¬, ∧, ∨, →, ↔)、命题公式的真值表与等价关系)
    第2章 命题逻辑的推理理论(形式推理规则、自然演绎系统、公理化方法)
    第3章 谓词逻辑(个体词、谓词、量词(∀, ∃)、一阶逻辑公式、解释与有效性)
    第4章 集合(集合的运算(交、并、补)、包含关系、基数、集合的构造(如自然数的集合表示))
    第5章 关系与函数(二元关系的性质(自反、对称、传递)、等价关系与划分、函数的类型(单射、满射、双射)、关系的闭包)
    第6章 代数系统的一般概念(代数系统的定义(集合+运算)、半群、独异点、群、环、域、同态与同构)
    第7章 格与布尔代数(偏序集、格的定义、分配格、有补格、布尔代数的性质)
    第8章图(图的基本概念(顶点、边、路径、连通性)、特殊图(树、欧拉图、哈密顿图)、图的矩阵表示(邻接矩阵、可达矩阵)、平面图、图着色)
    第9章图的应用(图论在计算机科学中的应用(如最短路径算法、网络流、匹配问题)、图的算法设计与分析)

  • 第一级关系
    1、命题逻辑 → 谓词逻辑:从简单命题扩展到带变量和量词的复杂表达
    2、集合 → 关系与函数 → 代数系统:从集合的基本运算到结构化的代数系统
    3、图论 → 图的应用:从理论到实际问题建模。

  • 第二级关系
    1、逻辑是基础
    命题逻辑是谓词逻辑的基础,而谓词逻辑为代数系统和图论提供形式化工具
    谓词逻辑:为代数系统(如群的公理化定义)和图论(如路径存在的形式化描述)提供严格的表达工具
    2、代数系统与图论交叉
    通过群论、矩阵运算等方法分析图的性质。
    3、布尔代数作为桥梁
    连接逻辑、代数和计算机科学(如电路设计、数据库索引)
    布尔代数:既是代数系统(满足分配律、互补律等公理),又与命题逻辑的真值表运算完全对应(如逻辑与、或、非)。

维度命题逻辑谓词逻辑代数系统图论
核心对象命题(简单真假值)个体、谓词、量词集合与运算(如群、环)顶点、边、路径等
表达能力简单命题的组合复杂关系与量词化的表达结构化运算规则离散结构的拓扑关系
主要工具真值表、逻辑联结词谓词、量词、形式公理公理化定义(如结合律、单位元)图的矩阵表示(邻接矩阵)、算法
典型应用逻辑电路、简单推理数学证明、数据库查询密码学、电路设计网络分析、算法优化

MA238离散数学, 由两部分组成

  • 1、数理逻辑与集合论

    • 数理逻辑、命题逻辑、谓词逻辑之概念详细梳理
      简而言之,数理逻辑就是精确化、数学化的形式逻辑
      用数学的方法研究关于推理、证明等问题的学科就叫做数理逻辑,也叫做符号逻辑。
      数理逻辑的主要分支包括:
      逻辑演算(包括命题演算和谓词演算)、模型论、证明论、递归论和公理化集合论。
    • 2.5 对偶式
      将合取和析取反一下,把T和F反一下
      2.6 范式(命题逻辑部分)
      主析取范式和主合取范式互相转换
      这一部分只可意会,注意极小项和极大项的性质
      5.3 范式(谓词逻辑部分)
      前束范式:量词都在前面
      Skolem标准形:
      一种是存在量词都在全称量词的右边(这种也叫存在前束范式)另一种是直接消去存在量词
    • 5.5 推理演算
      1.全称量词消去规则
      2.全称量词引入规则
      3.存在量词消去规则
      4.存在量词引入规则
      10.4 关系的性质
      存在非空集合,既不是自反的,又不是非自反的。但是不存在非空集合,既是自反的,又不是非自反的。
      对称性和反对称性,既可以同时满足,也可以同时不满足。
      10.5 关系的闭包
      自反,对称,传递
      10.6 等价关系和划分
      自反、对称、传递的关系
      求等价关系的步骤:
      先求有多少种划分
      有一种划分就是一种等价关系!
      10.8 偏序关系
      线性序:也称全序。
      全序:任何两个元素都有关系。
      良序:对偏序集<A,<>,如果A的任何非空子集都有最小元,则称<为良序关系,称该集为良序集。
      定理10.8.6:一个良序集一定是一个全序集。(反之不一定)
      定理10.8.7:一个有限的全序集一定是良序集。
  • 2、图论与代数结构
    2.3 欧拉道路与回路
    欧拉回路的充要条件:G中各结点的度数为偶数,
    欧拉道路的充要条件:只有2个度数为奇数的点。
    Kruskal算法
    过程:
    1.初始化一个空的树
    2.挑一个全局最短的边
    3.如果加上这条边没有回路,就加上吧。顺便在原图中去掉4.重复2和3,直到树的边为n-1。

知识点ZJ

  • 集合论
    在这里插入图片描述
  • 命题逻辑
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 谓词逻辑
    在这里插入图片描述
    在这里插入图片描述
  • 关系
    在这里插入图片描述
  • 函数:
    在这里插入图片描述

  • 在这里插入图片描述

真题试卷

  • 1
    在这里插入图片描述
  • 2
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

参考资料:
1-期末 zju, thu, sjtu nju zju
2-02324离散数学, 2, 3

3、软件工程(需求 -> 结构/对象设计 -> 测试 -> 质量/成熟度/运维)

在这里插入图片描述

知识点总结、考点串讲、考前复习-02333

  • 第1章 绪论
    1.1 软件工程概念的提出与发展
    1.2 软件开发的本质
  • 第2章 软件需求与软件需求规约
    2.1 需求与需求获取
    2.2 需求规约
  • 第3章 结构化方法
    3.1 结构化需求分析
    3.2 结构化设计
  • 第4章面向对象方法—UMI
    4.1 UML术语表
    4.2 UML的模型表达式
  • 第5章 面向对象方法——RUP
    5.1 RUP的特点
    5.2 核心工作流
  • 第6章软件测试
    6.1 软件测试目标与软件测试过程模型
    6.2 软件测试技术
    6.3 软件测试步骤
  • 第7章 软件生存周期过程与管理
    7.1 软件生存周期过程概述
    7.2 过程描述
    7.3 应用说明
    7.4 软件生存周期模型
    7.5 过程规划与管理
  • 第8章集成化能力成熟度模型(CMMI)
    8.1 背景和原理
    8.2 CMMI的模型部件
    8.3 CMMI的等级

1、软件工程的概念

  • “软件危机”现象
    20世纪60年代以来,随着计算机的广泛使用,软件生产率、软件质量远远满足不了社会发展的需求,成为社会、经济发展的制约因素,人们通常把这一现象称为“软件危机”
  • 软件开发的本质
    不同抽象层术语之间映射,以及不同抽象层处理逻辑之间的映射。
  • 软件的定义
    软件是包括程序、数据及其相关文档的完整集合。其中,程序是按照事先设计的功能和性能要求执行的指令序列;数据是使程序能正常操作信息的数据结构;文档是与程序开发、维护和使用有关的图文材料。
    在这里插入图片描述

2、软件需求与软件需求规约

  • 需求定义及其基本特性
    一个需求是有关一个“要予构造”的陈述,描述了待开发产品/系统(或项)功能上的能力、性能参数或其他性质。
    对于单一一个需求,必须具有五个基本特性:
    (1)必要的,该需求是用户说要求的;
    (2)无歧义的,该需求只能用一种方式解释;
    (3)可测的,该需求是可以进行测试的;
    (4)可跟踪的,该需求可从一个开发阶段跟踪到另一个阶段;
    (5)可测量的,该需求是可测量的。
  • 需求规约
    需求规约一般要满足四个基本特性
    (1)重要性和稳定性程度:按需求的重要性和稳定性,对需求进行分级,例如:基本需求、可选需求、期望需求
    (2)可修改的:在不过多地影响其他需求的前提下,可以容易地修改一个单一需求。
    (3)完整的:没有遗漏的需求。
    (4)一致的:不存在互斥的需求。
    在这里插入图片描述
    在这里插入图片描述

3、结构化方法

  • 表达问题域信息的基本术语及其表示
    (1)数据流:在结构化分析方法中,数据流是数据的流动,用于表达在分析中所要使用的、用于表达“客体”的信息。
    (2)加工:在结构化分析方法中,加工是数据的变换单位,即它接受输入的数据,对其进行处理,并产生输出。
    (3)数据存储:数据存储是数据的静态接口。
    (4)数据源和数据潭:数据源是数据流的起点,数据潭是数据流的归宿地。数据源和数据潭是系统之外的实体,可以是人、物或其他软件。它们均用一个矩形表示。
  • 表达功能模型的工具——DFD图
    DFD图,即数据流图,是表达功能模型的工具。它是一种描述数据变换的图形化工具,其中包含的元素可以是数据流、数据存储、加工、数据源和数据潭等。
  • 数据字典、判定表和判定树
    (1)在数据字典中,为了使定义的结构数据便于理解和阅读,一般按三种条目来组织,即数据流条目、数据存储数目和数据条目。
    (2)判定表:判定表是用以描述加工的一种工具,通常用来描述一些不易用自然语言表达清楚或需要很大篇幅才能表示清楚的加工。
    (3)判定树:判定树也是一种描述加工的工具,判定表可以用判定树等价表示。
    在这里插入图片描述

4、面向对象方法

  • UML术语表总述
    为了支持抽象分析和设计中的事物,UML给出了八个基本本语即类、接口、协作、用况、主动类、构件、制品、节点。 每个术语都体现着一定的软件设计原理,例如类体现了数据抽象、过程抽象、局部化以及信息隐蔽等原理;用况体现了问题分离、功能抽象等原理;接口体现了功能抽象等。
  • UML的4个术语
    为了表达各类事物之间的相互依赖和作用,UML给出了4个术语,即关联、泛化、细化和依赖;
    (1)关联:关联是对一组有相同结构、相同链的描述,是类目之间的一种结构关系。关联可以用一条连接两个类目的线段表示,并可对其命名,其结构可以具有方向性,用一个实心三角形来指示关联的方向;
    (2)泛化:泛化是一般性类目和它的较为特殊类目之间的一种关系。子类可以继承父类的属性和操作,同时,也可以替换父类的声明;
    (3)细化:细化是类目之间的语义关系,其中一个类目规约了保证另一个类目执行的契约;
    (4)依赖:依赖用于描述一个类目使用另一个类目的信息和服务,是一种使用关系。
  • UML术语的作用
    (1). 类用于抽象客观事物。
    (2). 接口用于抽象事物之间的缝隙。
    (3). 协作用于抽象协作性行为。
    (4). 用况用于抽象功能。
    (5). 主动类用于抽象并发行为。
    (6). 构件用于抽象软件解中可标识的成分。
    (7). 制品用于抽象工作产品。
    (8). 节点用于抽象计算单元。
    (9). 关联用于抽象结构关系。
    (10). 泛化用于抽象“一般/特殊”关系。
    (11). 实现用于抽象精化关系。
    (12). 依赖用于抽象使用关系。
  • 面向对象方法——RUP
    RUP的突出特点
    RUP的突出特点是,它是一种以用况为驱动的、以体系结构为中心的迭代、增量式开发
    (1)以用况为驱动
    以用况为驱动是指在系统的生存周期中,以用况作为基础,驱动系统有关人员对所要建立系统的功能需求进行交流,驱动系统分析、设计、实现和测试等活动。
    (2)以体系结构为中心
    以体系结构为中心是指在系统的生存周期中,开发的任何阶段都要给出相关模型视角下有关体系结构的描述,作为构思、构造、管理和改善系统的主要标准。
    (3)迭代、增量式开发
    迭代、增量式开发是指通过开发活动的迭代,不断地产生相应的增量。在RUP中,规定了四个开发阶段:初始阶段、精化阶段、构造阶段和移交阶段。
    在这里插入图片描述
    在这里插入图片描述

5、软件测试

  • 软件测试的定义为:
    按照特定规程发现软件错误的过程。其目的是检验它是否满足规定的需求,或清楚了解预期结构与实际结果之间的差异。
  • 测试过程模型
    软件测试是一个有程序的过程,包括测试设计、测试执行以及测试结果比较。测试过程模型可分为三类:环境模型、被测对象模型和错误模型。
    (1)环境模型:是对程序运行环境的抽象。程序运行环境又包括支持其运行的硬件、固件和软件,如计算机、终端设备、网卡、操作系统、编译系统、实用程序等。在软件测试过程中,建立环境模型的主要目的是,确定所发现的错误是否为环境造成的。
    (2)被测对象模型:该模型是从测试的角度对程序的抽象。为了测试,必须简化程序,形成被测程序的抽象版本,即对象模型。
    (3)错误模型:该模型是对程序中的错误及其分类的抽象。在软件测试中,往往需要定义“什么是错误”、“什么是一般性错误”、“什么是严重性错误”等,即要给出“错误模型”。
    在这里插入图片描述
    在这里插入图片描述在这里插入图片描述

6、软件生存周期过程与管理

  • 过程分类
    按过程主体把软件生存周期过程分为以下几个过程。
    (1)基本过程:是指那些与软件生产直接相关的活动集。该过程又可分为获取过程、供应过程、开发过程、运行过程和维护过程。
    (2)支持过程:是指有关各方按他们的目标所从事的一系列相关支持活动集。该过程又可分为文档过程、配置管理过程、质量保证过程、验证过程、确认过程、联合评审过程、审计过程和问题解决过程。
    (3)组织过程:是指那些与软件生产组织有关的活动集。该过程又可分为设计过程、基础设施过程培训过程和改进过程。

  • 软件验证过程包含两个活动:过程实现和验证。
    验证活动有五个任务:需求验证、设计验证、代码验证、集成验证和文档验证个过程可通过过程意图、期望的结果以及达到过程结果所需要执行的活动和任务来描述。
    对于一个过程的完整技术上的描述,还应包括:达到过程意图和实现过程结果的方法或规程,以及过程和活动的文档。

  • 软件生存周期模型
    瀑布模型
    增量模型
    演化模型
    螺旋模型
    喷泉模型

  • 集成化能力成熟度模型(CMMI)
    过程专用目标和共用目标
    过程域是一个业务域中一束相关的实践,当它们一起得以实现时,就满足被认为对该过程域的改善具有重要作用的一组条件。
    专用目标是用于描述满足该过程域必须呈现的一些独有特征。经可以用于帮助确定一个过程域是否得以满足。
    共用目标用于描述产现制度化的该过程必须呈现的特征,仅用于确定一个过程域是否得以满足。
    成熟度等级的组成
    在CMM中,应用于一个组织过程改善的成熟度等级有5个。即1级:初始级;2级:已管理级;3级:已定义级;4级:已定量管理级;5级:持续优化级。
    在这里插入图片描述
    在这里插入图片描述

试卷

  • 1
    在这里插入图片描述
    在这里插入图片描述

  • 2、
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • 3、
    在这里插入图片描述
    在这里插入图片描述

参考资料:
02333软件工程
ankiwiki 2

相关文章:

【计科】计算机科学与技术,从离散数学到软件工程,从理学/抽象/科学到工学/具体/技术

【计科】计算机科学与技术&#xff0c;从离散数学到软件工程&#xff0c;从理学/抽象/科学到工学/具体/技术 文章目录 1、发展史与桥梁&#xff08;离散数学 -> 算法/数据结构 -> 软件工程&#xff09;2、离散数学&#xff08;数理逻辑-命题/谓词/集合/函数/关系 -> 代…...

架构与大数据-RabbitMQ‌和Kafka的技术实现异同及落地场景上的异同

RabbitMQ‌与Kafka技术实现及场景对比 ‌一、技术实现异同‌ ‌对比维度‌‌RabbitMQ‌‌Kafka‌‌核心协议/模型‌基于 ‌AMQP 协议‌&#xff0c;支持点对点、发布/订阅、Topic Exchange 等多种消息模式&#xff0c;支持灵活的路由规则‌基于 ‌发布-订阅模型‌&#xff0c;…...

工程画图-UML类图 组合和聚合

组合VS聚合 组合&聚合浅层理解 组合似组装&#xff0c;电脑组装&#xff0c;少装一个CPU行不&#xff1f;不行&#xff0c;没CPU哪还是电脑啊。用实心菱形表示。 而聚合似起义&#xff0c;聚是一团火&#xff0c;散是满天星。就像公司和员工&#xff0c;少你一个照常运转…...

Go语言-初学者日记(七):用 Go 写一个 RESTful API 服务!

&#x1f477; 实践是最好的学习方式&#xff01;这一篇我们将用 Go Gin 框架从零开始开发一个用户管理 API 服务。你将学到&#xff1a; 如何初始化项目并引入依赖如何组织目录结构如何用 Gin 实现 RESTful 接口如何通过 curl 测试 API进阶功能拓展建议 &#x1f9f0; 一、项…...

数据结构:手工创建表达式树的方法

1. 表达式树 表达式树&#xff08;Binary Expression Tree&#xff09;是一类特殊的二叉树&#xff0c;用以表示表达式&#xff0c;如图 7.6.1 所示&#xff0c;是一棵表示了 a b * c d * (e f) 的表达式树。 图 7.6.1 表达式树示例 表达式树有如下特点&#xff1a; 操作数…...

自定义类型:联合和枚举

文章目录 前言一、联合体类型的声明1.1 联合体类型的声明1.2 联合体的特点1.3 相同成员的结构体和联合体对比1.4 联合体大小的计算1.5 联合体的一个练习 二、枚举类型的声明2.1 枚举类型的声明2.2 枚举类型的优点2.3 枚举类型的使用1. 用于 switch 语句2. 作为函数参数 总结 前…...

注意力机制

实现了Bahdanau式加法注意力的核心计算逻辑。以下是三个线性层设计的完整技术解析&#xff1a; 一、数学公式推导 注意力分数计算流程&#xff1a; s c o r e ( h d e c , h e n c ) v T ⋅ tanh ⁡ ( W 1 ⋅ h e n c W 2 ⋅ h d e c ) score(h_{dec}, h_{enc}) v^T \cdot …...

OrangePi5Plus开发板不能正确识别USB 3.0 设备 (绿联HUB和Camera)

1、先插好上电&#xff08;可正确识别&#xff09; 2、上电开机后插&#xff0c;报错如下&#xff0c;只能检测到USB2.0--480M&#xff0c;识别不到USB3.0-5Gbps&#xff0c;重新插拔也不行 Apr 4 21:30:00 orangepi5plus kernel: [ 423.575966] usb 5-1: reset high-speed…...

KubeVirt虚拟化管理架构

目录 一. KubeVirt简介 1.1 KubeVirt的价值 1.2 KubeVirt架构 1.3 KubeVirt组件 1.4 KubeVirt流程管理 KubeVirt实战 2.1 Kubevirt安装 2.1.1节点规划 2.1.2 环境准备 2.1.3 安装KubeVirt 2.1.4 安装CDI 2.1.5 安装virtctl命令工具 2.1.6 生成官方虚拟机 2.1.7 进…...

游戏引擎学习第202天

调试器&#xff1a;启用“跳转到定义/声明”功能 开始了一个完整游戏的开发过程&#xff0c;并分享了一些实用技巧。首先&#xff0c;讨论了如何在 Visual Studio 中使用“跳转到定义”和“跳转到声明”功能&#xff0c;但当前的项目并未启用这些功能&#xff0c;因为缺少浏览…...

sqlalchemy查询json

第一种&#xff1a;字段op是json格式&#xff1a; {"uid": "cxb123456789","role": 2,"op_start_time": 1743513707504,"op_end_time": 1743513707504,"op_start_id": "op_001","op_end_id"…...

2024第十五届蓝桥杯大赛软件赛省赛C/C++ 大学 B 组

记录刷题的过程、感悟、题解。 希望能帮到&#xff0c;那些与我一同前行的&#xff0c;来自远方的朋友&#x1f609; 大纲&#xff1a; 1、握手问题-&#xff08;解析&#xff09;-简单组合问题&#xff08;别人叫她 鸽巢定理&#xff09;&#x1f607;&#xff0c;感觉叫高级了…...

Linux系统之wc命令的基本使用

Linux系统之wc命令的基本使用 一、命令简介二、基本语法格式三、核心功能选项四、典型使用案例4.1 创建示例文件4.2 基础统计操作4.3 组合选项使用4.4 管道流处理 五、高级应用技巧4.1 递归统计代码行数4.2 统计CSV文件数据量4.3 监控日志增长速率4.4 字符与字节差异说明 七、命…...

SQL Server 2022 脏读问题排查与思考

总结sqlserver的使用&#xff0c;总是会回想起很多开发过程当中加班努&#xff08;拼&#xff09;力&#xff08;命&#xff09;的场景&#xff0c;今天&#xff0c;就把之前一个由于数据库脏读到这的OA系统员工请假流程状态不一致问题和解决思路分享一下。 业务场景描述 由于…...

Linux系统时间

1. Linux系统时间 jiffies是linux内核中的一个全局变量&#xff0c;用来记录以内核的节拍时间为单位时间长度的一个数值。 jiffies变量开机时有一个基准值&#xff0c;然后内核每过一个节拍时间jiffies就会加1。 一个时间节拍的时间取决于操作系统的配置&#xff0c;Linux系统一…...

【Windows批处理】命令入门详解

Windows 批处理&#xff08;Batch Script&#xff09;是一种用于在 Windows 操作系统上自动执行命令的脚本语言。它基于 Windows 命令提示符&#xff08;cmd.exe&#xff09;并使用 .bat 或 .cmd 文件格式。 一、批处理基础 1. 创建批处理文件 批处理脚本本质上是一组按顺序执…...

fpga系列 HDL:ModelSim 条件断点调试 modelsim支持的tcl语言

条件断点调试配置流程&#xff1a; 触发动作用tcl语言描述,modelsim支持的tcl语言见&#xff1a;https://home.engineering.iastate.edu/~zzhang/courses/cpre581-f08/resources/modelsim_quickguide.pdf 运行效果&#xff1a;...

Linux: network: 两台直连的主机业务不通

前提环境,有一个产品的设定是两个主机之间必须是拿网线直连。但是设备管理者可能误将设置配错,不是直连。 最近遇到一个问题,说一个主机发的包,没有到对端,一开始怀疑设定的bond设备的问题,检查了bond的设置状态,发现没有问题,就感觉非常的奇怪。后来就开始怀疑两个主机…...

虚拟地址空间布局架构

一、内存管理架构 1.Linux内核整体架构以及子系统 内存管理子系统架构分为用户空间、内核空间及硬件部分 3 个层面&#xff1a; 用户空间&#xff1a;应用程序使用malloc()申请内存资源&#xff0c;通过free()释放内存资源。内核空间&#xff1a;内核是操作系统的一部分&…...

在VMware下Hadoop分布式集群环境的配置--基于Yarn模式的一个Master节点、两个Slaver(Worker)节点的配置

你遇到的大部分ubuntu中配置hadoop的问题这里都有解决方法&#xff01;&#xff01;&#xff01;&#xff08;近10000字&#xff09; 概要 在Docker虚拟容器环境下&#xff0c;进行Hadoop-3.2.2分布式集群环境的配置与安装&#xff0c;完成基于Yarn模式的一个Master节点、两个…...

go day 01

go day 01 配置go环境 install go on D:\huang\lang\go\D:\huang\lang\go\bin\go xxx.go # D:\huang\lang\go\bin 设置到环境变量go go version# 创建任意一个目录,创建三个文件夹 # D:\huang\lang\goProject bin、pkg、src # 创建三个系统环境变量 GOROOT GOPATH GOBIN # GOR…...

(二)RestAPI 毛子(Tags)

文章目录 项目地址一、给Habit添加Tags1.1 创建Tags1. 创建一个新的HabitTags实体2. 设置Habit和Tags的关系3. 设置HabitTag表4. 在HabitConfiguration里配置5. 将表添加到EFCore里6. 迁移数据 1.2 给Habit增加/修改标签1. 创建UpsertHabitTagsDto2. 创建查询HabitWithTagsDto3…...

Elasticsearch:使用机器学习生成筛选器和分类标签

作者&#xff1a;来自 Elastic Andre Luiz 探索使用机器学习模型与传统硬编码方法在搜索体验中自动创建筛选器和分类标签的优缺点 筛选器和分类标签是用来优化搜索结果的机制&#xff0c;帮助用户更快速地找到相关内容或产品。在传统方法中&#xff0c;规则是手动定义的。例如…...

Python接口自动化测试之UnitTest详解

↵ 基本概念 UnitTest单元测试框架是受到JUnit的启发&#xff0c;与其他语言中的主流单元测试框架有着相似的风格。其支持测试自动化&#xff0c;配置共享和关机代码测试。支持将测试样例聚合到测试集中&#xff0c;并将测试与报告框架独立。 它分为四个部分test fixture、Te…...

《概率论与数理统计》期末复习笔记_上

目录 第1章 随机事件与概率 1.1 随机事件 1.2 事件的关系与运算 1.3 概率的定义与性质 1.4 古典概型_重点 1.5 几何概型 1.6 条件概率与乘法公式 1.7 全概率公式与贝叶斯公式_重点 1.8 事件的独立性_重点 1.9 伯努利概型_重难点 第2章 随机变量及其分布 2.1 随机变…...

工程师 - Doxygen介绍

Code Documentation. Automated. Free, open source, cross-platform. Version 1.12.0 is now available! Release date: 7 August 2024 官方网址&#xff1a; Doxygen homepage 文档&#xff1a; Doxygen: Overview Github网址&#xff1a; https://github.com/doxygen/…...

开源且完全没有审核限制的大型语言模型的概述

开源且完全没有审核限制的大型语言模型的概述 关键要点 研究表明&#xff0c;存在多个开源的大型语言模型&#xff08;LLM&#xff09;完全没有审核限制&#xff0c;适合开放对话。包括基于 Llama、Mixtral、Phi-2 和 StableLM 的模型&#xff0c;参数范围从 2.78 亿到 4050 亿…...

Qt QTableView QAbstractTableModel实现复选框+代理实现单元格编辑

话不多说&#xff0c;直接看代码 一、Model 1、QTableModel_Test.h #pragma once#include <QAbstractTableModel> #include <QObject> #include <QModelIndex>class QTableModel_Test : public QAbstractTableModel {Q_OBJECT public:QTableModel_Test(Q…...

2025.3.19

1、用vim编辑/etc/hosts文件&#xff0c;将本机和第二个虚拟机的ip地址和主机名写入该文件&#xff0c;然后ping 两个主机的主机名能否ping通&#xff1b; &#xff08;1&#xff09;在第一个虚拟机编辑/etc/hosts: 首先使用hostname、hostnamectl、hostname -f指令查看主机名…...

GATT(Generic Attribute Profile)是蓝牙低功耗(Bluetooth Low Energy,简称BLE)协议栈中的一个核心协议

蓝牙的 GATT&#xff08;Generic Attribute Profile&#xff09; 是蓝牙低功耗&#xff08;Bluetooth Low Energy&#xff0c;简称BLE&#xff09;协议栈中的一个核心协议&#xff0c;用于定义设备如何通过蓝牙进行数据传输和交互。GATT 是基于 ATT&#xff08;Attribute Proto…...

打造下一代智能体验:交互型 AI 的崛起与实践

在人工智能技术不断飞跃的今天&#xff0c;我们正迎来一个从"一问一答"向"多轮交互、智能反馈"转变的新时代——交互型 AI&#xff08;Interactive AI&#xff09;。 什么是交互型 AI&#xff1f; 交互型 AI 指的是具备多轮对话能力、状态记忆、工具调用…...

关于uint8_t、uint16_t、uint32_t、uint64_t的区别与分析

一、类型定义与字节大小 uint8_t、uint16_t、uint32_t、uint64_t 是 C/C 中定义的无符号整数类型&#xff0c;通过 typedef 对基础类型起别名实现。位宽&#xff08;bit&#xff09;和字节数严格固定&#xff1a; uint8_t&#xff1a;8 位&#xff0c;占用 ​1 字节&#xff…...

19685 握手问题

19685 握手问题 ⭐️难度&#xff1a;简单 &#x1f31f;考点&#xff1a;2024、省赛、数学 &#x1f4d6; &#x1f4da; package test ;import java.util.Scanner; public class Main {public static void main(String[] args) {Scanner scanner new Scanner(System.in);…...

react redux的学习,单个reducer

redux系列文章目录 一 什么redux&#xff1f; redux是一个专门用于做状态管理的JS库(不是react插件库)。它可以用在react, angular, vue等项目中, 但基本与react配合使用。集中式管理react应用中多个组件共享的状 简单来说&#xff0c;就是存储页面的状态值的一个库&#xf…...

CCF GESP C++编程 二级认证真题 2025年3月

C 二级 2025 年 03 月 CCF GESP C编程 二级认证真题 题号 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 答案 D C A A D A D A C B C D B C C 1 单选题 第 1 题 2025年春节有两件轰动全球的事件&#xff0c;一个是DeepSeek横空出世&#xff0c;另一个是贺岁片《哪吒2》票房惊人&#…...

Lua函数与表+Lua子文件加载与元表

Lua函数相关示例代码 --脚本型语言&#xff0c;不能先调用&#xff0c;再定义&#xff0c;因为代码是从上往下执行的 --第一种声明函数 function func1()print("这是func1") end--先定义&#xff0c;再调用&#xff0c;没有问题 func1() -------------------------…...

Linux systemd 服务全面详解

一、systemd 是什么&#xff1f; systemd 是 Linux 系统的现代初始化系统&#xff08;init&#xff09;和服务管理器&#xff0c;替代传统的 SysVinit 和 Upstart。它不仅是系统启动的“总指挥”&#xff0c;还统一管理服务、日志、设备挂载、定时任务等。 核心作用 服务管理…...

Linux系统调用编程

目录 1.Linux下进程和线程进程线程区别查看进程pid终止进程pid 2.Linux虚拟内存管理与stm32内存映射设计目标与架构差异地址空间管理机制对比内存使用与性能特性 3.Linux系统调用函数fork()wait()exec() 4.树莓派环境下练习创建账号1创建用户账号2.配置用户权限3.查看用户 登录…...

AWS Langfuse AI用Bedrock模型使用完全教程

AWS Langfuse AI使用完全教程 推荐超级课程: 本地离线DeepSeek AI方案部署实战教程【完全版】Docker快速入门到精通Kubernetes入门到大师通关课AWS云服务快速入门实战目录 AWS Langfuse AI使用完全教程Langfuse是什么?准备工作创建Langfuse账户1.创建LLM应用程序启用Bedrock…...

【Docker项目实战】使用Docker部署MediaCMS内容管理系统

【Docker项目实战】使用Docker部署MediaCMS内容管理系统 前言一、MediaCMS介绍1.1 MediaCMS 简介1.2 主要特点1.3 使用场景二、本次实践规划2.1 本地环境规划2.2 本次实践介绍三、本地环境检查3.1 检查Docker服务状态3.2 检查Docker版本3.3 检查docker compose 版本四、下载Med…...

OpenHarmony子系统开发 - DFX(一)

OpenHarmony子系统开发 - DFX&#xff08;一&#xff09; 一、DFX概述 简介 在OpenHarmony中&#xff0c;DFX(Design for X)是为了提升质量属性的软件设计&#xff0c;目前包含的内容主要有&#xff1a;DFR&#xff08;Design for Reliability&#xff0c;可靠性&#xff09…...

深入解析:使用Python爬取Bilibili视频

深入解析&#xff1a;使用Python爬取Bilibili视频 引言 Bilibili&#xff0c;作为中国领先的年轻人文化社区&#xff0c;拥有海量的视频资源。对于想要下载Bilibili视频的用户来说&#xff0c;手动下载不仅费时费力&#xff0c;而且效率低下。本文将介绍如何使用Python编写一…...

详解数据结构线性表 c++实现

线性表 线性表是一种非常基础且重要的数据结构&#xff0c;它是具有相同数据类型的 n&#xff08;n≥0&#xff09;个数据元素的有限序列。这里的 “有限” 意味着元素的数量是确定的&#xff0c;“序列” 则表示元素之间存在着顺序关系。 顺序表 顺序表是线性表的一种顺序存…...

Prolog语言的网络协议栈

Prolog语言的网络协议栈 引言 网络协议栈是现代计算机网络的重要组成部分&#xff0c;它负责在网络中的各个节点之间以标准化的方式传输数据。在这一体系中&#xff0c;不同层次的协议相互协作&#xff0c;以实现从物理传输到应用层数据处理的功能。Prolog是一种以符号逻辑为…...

音视频基础(音频常用概念)

文章目录 **1. 比特率&#xff08;Bitrate&#xff09;****概念****影响****音频比特率****视频比特率** **2. 码率&#xff08;Bitrate&#xff09;****3. 帧&#xff08;Frame&#xff09;****概念****视频帧****音频帧** **4. 帧长&#xff08;Frame Length&#xff09;****…...

洛谷题单3-P5725 【深基4.习8】求三角形-python-流程图重构

题目描述 模仿例题&#xff0c;打印出不同方向的正方形&#xff0c;然后打印三角形矩阵。中间有个空行。 输入格式 输入矩阵的规模&#xff0c;不超过 9 9 9。 输出格式 输出矩形和正方形 输入输出样例 输入 4输出 01020304 05060708 09101112 13141516010203040506 …...

【数据结构】邻接表 vs 邻接矩阵:5大核心优势解析与稀疏图存储优化指南

邻接表法 导读一、邻接矩阵的不足邻接表二、存储结构三、算法评价3.1 时间复杂度3.2 空间复杂度 四、邻接表特点4.1 特点解读特点3特点4特点5 结语 导读 大家好&#xff0c;很高兴又和大家见面啦&#xff01;&#xff01;&#xff01; 图作为一种复杂的数据结构&#xff0c;其…...

编程能力的跃迁时刻:技术革命与认知重构的交响曲

在软件开发领域,从业者常将"一万小时定律"视为能力增长的圭臬,但真正的能力跃迁往往发生在特定技术范式转换的临界点。当开发者首次理解递归算法的本质,当面向对象编程替代过程式思维,当自动化工具链重塑开发流程,这些认知地震时刻往往成为技术生涯的分水岭。 …...

PostIn V1.0.8版本发布,IDEA 插件支持一键扫描上报,让接口定义不再繁琐

PostIn是一款国产开源免费的接口管理工具&#xff0c;包含项目管理、接口调试、接口文档设计、接口数据MOCK等模块&#xff0c;支持常见的HTTP协议、websocket协议等&#xff0c;支持免登陆本地接口调试&#xff0c;同时可以对项目进行灵活的成员权限、消息通知管理等。本周Pos…...

删除Linux服务器上多余的系统启动项,并重装Ubuntu系统

问题描述 2024年6月&#xff0c;Centos团队终止维护Centos7系统&#xff0c;Ubuntu成了我的替换方案。正好有一台闲置的服务器&#xff0c;于是我临危受命给这台服务器重装系统。 经过我一番研究&#xff0c;Ubuntu系统初步安装成功了&#xff0c;但是存在一大堆问题&#xff…...