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

机器学习之DBSCAN算法详解

文章目录

  • 引言
  • 1. DBSCAN算法概述
  • 2.DBSCAN算法的基本概念
    • 2.1 ε-邻域
    • 2.2 核心点(Core Point)
    • 2.3 边界点(Border Point)
    • 2.4 噪声点(Noise Point)
    • 2.5 直接密度可达(Directly Density-Reachable)
    • 2.6 密度可达(Density-Reachable)
    • 2.7 密度相连(Density-Connected)
  • 3. DBSCAN算法的步骤
  • 4. DBSCAN算法的优缺点
    • 4.1 优点
    • 4.2 缺点
  • 5. DBSCAN算法的应用场景
  • 6. DBSCAN算法的实现
  • 7. 总结

引言

在机器学习领域,聚类算法是一类重要的无监督学习方法,用于将数据集中的样本划分为若干个簇,使得同一簇内的样本相似度较高,而不同簇之间的样本相似度较低。DBSCAN(Density-Based Spatial Clustering of Applications with Noise)是一种基于密度的聚类算法,它能够识别出任意形状的簇,并且能够有效处理噪声数据。本文将详细介绍DBSCAN算法的原理、实现步骤、优缺点以及应用场景。

1. DBSCAN算法概述

DBSCAN(Density-Based Spatial Clustering of Applications with Noise)是一个比较有代表性的基于密度的聚类算法。与划分和层次聚类方法不同,它将簇定义为密度相连的点的最大集合,能够把具有足够高密度的区域划分为簇,并可在噪声的空间数据库中发现任意形状的聚类。

2.DBSCAN算法的基本概念

在理解DBSCAN算法之前,我们需要先了解一些基本概念:

2.1 ε-邻域

对于一个样本点 p ,其ε-邻域定义为以 p 为中心、半径为 ε 的区域内的所有样本点。数学上,ε-邻域可以表示为:

在这里插入图片描述

其中, D 是数据集,dist(p, q) 是样本点 p 和 q 之间的距离。

2.2 核心点(Core Point)

如果一个样本点 p 的ε-邻域内至少包含 MinPts 个样本点(包括 p 自身),则称 p 为核心点。即:

在这里插入图片描述

2.3 边界点(Border Point)

如果一个样本点 q 的ε-邻域内包含的样本点数量少于 MinPts ,但 q 位于某个核心点的ε-邻域内,则称 q 为边界点。

2.4 噪声点(Noise Point)

如果一个样本点既不是核心点,也不是边界点,则称该样本点为噪声点。

2.5 直接密度可达(Directly Density-Reachable)

对于一个核心点 p 和一个样本点 q ,如果 q 位于 p 的ε-邻域内,则称 q 是从 ( p 直接密度可达的。

2.6 密度可达(Density-Reachable)

如果存在一个样本点序列 p1, p2,… pn ,其中 p1 = p , pn = q ,并且对于每个 i , p{i+1} 是从 pi 直接密度可达的,则称 q 是从 p 密度可达的。

2.7 密度相连(Density-Connected)

如果存在一个样本点 o ,使得 p 和 q 都是从 o 密度可达的,则称 p 和 q 是密度相连的。

3. DBSCAN算法的步骤

DBSCAN算法的核心思想是通过遍历数据集中的每个样本点,根据其ε-邻域内的样本点数量来判断其是否为核心点,并逐步扩展簇。具体步骤如下:

  • DBScan需要二个参数: 扫描半径 (eps)和最小包含点数(minPts)。任选一个未被访问(unvisited)的点开始,找出与其距离在eps之内(包括eps)的所有附近点。 如果 附近点的数量 ≥minPts,则当前点与其附近点形成一个簇,并且出发点被标记为已访问(visited)。然后递归,以相同的方法处理该簇内所有未被标记为已访问(visited)的点,从而对簇进行扩展。 如果 附近点的数量 <minPts,则该点暂时被标记作为噪声点。 如果簇充分地被扩展,即簇内的所有点被标记为已访问,然后用同样的算法去处理未被访问的点。

4. DBSCAN算法的优缺点

4.1 优点

  • 能够识别任意形状的簇:DBSCAN基于密度进行聚类,能够识别出任意形状的簇,而不像K-means等算法只能识别球形簇。
  • 能够处理噪声数据:DBSCAN能够有效识别并处理噪声点,将其标记为噪声。
  • 不需要预先指定簇的数量:与K-means等算法不同,DBSCAN不需要预先指定簇的数量,能够自动识别数据中的簇。

4.2 缺点

  • 对参数敏感:DBSCAN的性能对参数 ( ε ) 和 ( MinPts ) 的选择非常敏感,不同的参数可能导致完全不同的聚类结果。
  • 难以处理高维数据:在高维数据中,样本点之间的距离变得难以衡量,导致DBSCAN的性能下降。
  • 对密度不均匀的数据集效果不佳:如果数据集中不同簇的密度差异较大,DBSCAN可能难以正确识别簇。

5. DBSCAN算法的应用场景

DBSCAN算法由于其独特的优点,在许多领域都有广泛的应用,包括但不限于:

  • 异常检测:DBSCAN能够有效识别噪声点,因此可以用于异常检测。
  • 图像分割:DBSCAN可以用于图像分割,将图像中的像素点聚类成不同的区域。
  • 地理信息系统:DBSCAN可以用于地理信息系统中的空间数据聚类,如识别城市中的热点区域。
  • 生物信息学:DBSCAN可以用于基因表达数据的聚类分析,识别具有相似表达模式的基因。

6. DBSCAN算法的实现

下面是一个使用Python实现DBSCAN算法的简单示例:

import pandas as pd
from sklearn.cluster import DBSCAN
from sklearn import metrics#读取文件
beer = pd.read_table("data.txt",sep=' ',encoding='utf8',engine='python')
#传入变量(列名)
x = beer[["calories","sodium","alcohol","cost"]]#聚类db = DBSCAN(eps=20,min_samples=2).fit(x)
beer['cluster'] = db.labels_#对聚类结果进行划分
"""
采用轮廓系数评分
x:数据集  scaled_cluster:聚类结果
score:非标准化聚类结果的轮廓系数
"""score = metrics.silhouette_score(x,beer.cluster)
print(score)
  • 在这个示例中,我们使用了sklearn库中的DBSCAN类来实现DBSCAN算法,并通过计算轮廓系数(Silhouette
    Coefficient)来实现,该系数越高表示聚类效果越好。
  • eps:用于定义邻域大小,较大的eps值可能导致更多的簇被合并,较小的eps值可能导致更多的噪声被视为簇。
  • min_samples:定义形成核心点的最小邻居数。较小的值可能导致更多的噪声被视为簇,较大的值可能导致簇分裂

7. 总结

DBSCAN是一种强大的基于密度的聚类算法,能够识别任意形状的簇并有效处理噪声数据。尽管它对参数选择敏感且在高维数据中表现不佳,但在许多实际应用中,DBSCAN仍然是一种非常有用的工具。通过理解DBSCAN的基本概念和实现步骤,我们可以更好地应用它来解决实际问题。

希望本文能够帮助你深入理解DBSCAN算法,并在实际项目中灵活运用。如果你有任何问题或建议,欢迎在评论区留言讨论!

感谢阅读!

相关文章:

机器学习之DBSCAN算法详解

文章目录 引言1. DBSCAN算法概述2.DBSCAN算法的基本概念2.1 ε-邻域2.2 核心点&#xff08;Core Point&#xff09;2.3 边界点&#xff08;Border Point&#xff09;2.4 噪声点&#xff08;Noise Point&#xff09;2.5 直接密度可达&#xff08;Directly Density-Reachable&…...

借助vite来优化前端性能

Vite 是一个现代化的前端构建工具&#xff0c;凭借其基于原生 ES 模块的开发服务器和高效的构建能力&#xff0c;可以显著优化前端性能。 一、开发环境优化 1.快速启动与热更新 Vite 利用浏览器对 ES 模块的原生支持&#xff0c;在开发环境中无需打包&#xff0c;直接按需加载…...

[工控机安全] 使用DriverView快速排查不可信第三方驱动(附详细图文教程)

导语&#xff1a; 在工业控制领域&#xff0c;设备驱动程序的安全性至关重要。第三方驱动可能存在兼容性问题、安全漏洞甚至恶意代码&#xff0c;威胁设备稳定运行。本文将手把手教你使用 DriverView工具&#xff0c;高效完成工控机驱动安全检查&#xff0c;精准识别可疑驱动&a…...

Execution failed for task ‘:path_provider_android:compileDebugJavaWithJavac‘.

What went wrong: Execution failed for task ‘:path_provider_android:compileDebugJavaWithJavac’. Could not resolve all files for configuration ‘:path_provider_android:androidJdkImage’. Failed to transform core-for-system-modules.jar to match attributes {…...

基于SpringBoot的社区/物业管理系统

项目介绍 平台采用B/S结构&#xff0c;后端采用主流的SpringBoot语言进行开发&#xff0c;前端采用主流的Vue.js进行开发。是一个综合的社区/物业管理系统。 整个平台包括前台和后台两个部分。 - 前台功能包括&#xff1a;小区信息、社区论坛、社区公告、社区留言板、个人中心。…...

vmware下linux无法上网解决方法

首先&#xff0c;打开打开"编辑" “虚拟网络编辑器”,并将"桥接"方式的网卡选择为主机上网的网卡。 虚拟机中&#xff0c;设置IP地址为主机网卡同样子网下的ip地址&#xff1a; 并且要选择桥接模式&#xff01;注意如下图&#xff0c;"复制物理连接状…...

【数据库备份】docker中数据库备份脚本——MySql备份脚本

docker中数据库备份脚本——MySql备份脚本 #!/bin/bash# MySQL数据库信息 DB_USER"root" DB_PASSWORD"你的密码"# 备份保存主目录 BACKUP_ROOT"/data/data_backup/mysql"# 最多保留的备份日期文件夹数 MAX_DATE_FOLDERS15# 数组包含要备份的数据…...

SpringBoot 第二课(Ⅰ) 整合springmvc(详解)

目录 一、SpringBoot对静态资源的映射规则 1. WebJars 资源访问 2. 静态资源访问 3. 欢迎页配置 二、SpringBoot整合springmvc 概述 Spring MVC组件的自动配置 中央转发器&#xff08;DispatcherServlet&#xff09; 控制器&#xff08;Controller&#xff09; 视图解…...

centos家用笔记

改用阿里云yum源 因CentOS7已经停止维护&#xff0c;原有的yum源也无法使用&#xff0c;在国内&#xff0c;改用阿里云yum源是个方便的选择。 cd /etc/yum.repos.d/ mkdir backup mv Cent* backup wget http://mirrors.aliyun.com/repo/Centos-7.repo mv Centos-7.repo Cen…...

数据可视化(matplotlib)-------辅助图标的设置

目录 一、认识图表常用的辅助元素 坐标轴 二、设置坐标轴的标签、刻度范围和刻度标签 &#xff08;一&#xff09;、设置坐标轴的标签 1、xlabel()------设置x轴标签 2、ylabel()------设置y轴标签 &#xff08;二) 、设置刻度范围和刻度标签 1、xlim()和ylim()函数分别可…...

15-双链表-双链表基本操作

题目 来源 827. 双链表 - AcWing题库 思路 此题我只想说&#xff0c;千万千万别漏了头结点和尾结点&#xff0c;不然根本查不出来是哪里出了问题&#xff0c;因为传入的k会有问题&#xff1b;最左边插入&#xff0c;相当于是在头结点的右边插入&#xff08;也就是0号节点的右…...

HTTP和RPC的区别

RPC和 HTTP是两种常见的通信方式&#xff0c;它们在设计目标、使用场景和技术实现上有显著区别。以下是它们的详细对比&#xff1a; 1. 定义与核心思想 特性RPCHTTPRemote Procedure Call远程过程调用HyperText Transfer Protocol超文本传输协议定义一种协议或框架&#xff0…...

【Linux内核系列】:动静态库详解

&#x1f525; 本文专栏&#xff1a;Linux &#x1f338;作者主页&#xff1a;努力努力再努力wz &#x1f4aa; 今日博客励志语录&#xff1a; 有些鸟儿是注定是关不住的&#xff0c;因为它们的每一片羽翼都沾满了自由的光辉 ★★★ 本文前置知识&#xff1a; 编译与链接的过程…...

【IROS 2025】CMU提出路径规划器PIPE:机器人探索效率提升14.6%,地图准确率提高9.3%!

在自主机器人探索未知环境的研究中&#xff0c;如何高效地规划路径、最大化信息获取&#xff0c;一直是一个核心问题。传统的方法往往仅在离散的路径点上计算信息增益&#xff0c;而缺乏对整个路径信息获取的综合考量&#xff0c;从而可能导致探索低效甚至错误的规划决策。近日…...

《笔记》Android 获取第三方应用及查看应用信息、apk大小、缓存、存储,以及第三方清除缓存

获取应用相关信息&#xff1a; PS:manifest标签中设置以下属性表示系统应用 android:process"system" android:sharedUserId"android.uid.system" //获取所有应用&#xff08;非系统apk&#xff0c;有些应用获取不到&#xff09; List<ApplicationInf…...

npm 安装 pnpm 的详细步骤及注意事项

一、安装步骤 1.全局安装 pnpm npm install -g pnpm2.验证安装 pnpm -v输出版本号即表示安装成功。 二、升级 pnpm 若已安装旧版本&#xff0c;可通过以下命令升级&#xff1a; npm install -g pnpmlatest三、配置镜像加速 设置淘宝镜像 pnpm config set registry http…...

大白话详细解读React框架的diffing算法

1. Diffing 算法是什么&#xff1f; Diffing 算法是 React 用来比较虚拟 DOM&#xff08;Virtual DOM&#xff09;树的一种算法。它的作用是找出前后两次渲染之间的差异&#xff08;diff&#xff09;&#xff0c;然后只更新这些差异部分&#xff0c;而不是重新渲染整个页面。 …...

【架构】单体架构 vs 微服务架构:如何选择最适合你的技术方案?

文章目录 ⭐前言⭐一、架构设计的本质差异&#x1f31f;1、代码与数据结构的对比&#x1f31f;2、技术栈的灵活性 ⭐二、开发与维护的成本博弈&#x1f31f;1、开发效率的阶段性差异&#x1f31f;2、维护成本的隐形陷阱 ⭐三、部署与扩展的实战策略&#x1f31f;1、部署模式的本…...

面试redis常被问到的面试题含答案

什么是Redis&#xff1f;它的特点是什么&#xff1f; Redis是一个开源的内存数据库&#xff0c;用于存储数据并支持多种数据结构&#xff08;如字符串、哈希、列表、集合、有序集合等&#xff09;。其特点包括高性能、支持持久化、数据结构丰富、原子性操作、支持事务等。 Red…...

Asp.net Core API 本地化

本文是一个demo&#xff0c;演示了如何根据用户接口查询字段(正常放header中),设置当前culture&#xff0c;并获取当前culture的key value给用户提示 创建Resources文件夹&#xff0c;添加以下三个文件 其中ExceptionUnuse 是一个空的类&#xff0c;供IStringLocalizer使用&a…...

使用Java实现Oracle表结构转换为PostgreSQL的示例方案(AI)

核心代码 import java.sql.*; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map;public class OracleToPGConverter {// 类型映射表private static final Map<String, String> TYPE_MAPPING new HashMap<>()…...

win32汇编环境,网络编程入门之八

;在上一教程里&#xff0c;我们学习了简单的处理服务器返回的数据 ;在这一教程里&#xff0c;我们了解一下&#xff0c;当连接上网站后&#xff0c;应该发送什么数据过去的问题 ;这里有个简单的方式学习&#xff0c;以下是一个示例 ;我们上网的时候可以用谷歌浏览器&#xff0c…...

Java EE 进阶:MyBatis

MyBatis是一个优秀的持久化框架&#xff0c;用于简化JDBC的开发。 持久层就是持久化访问的层&#xff0c;就是数据访问层&#xff08;Dao&#xff09;&#xff0c;用于访问数据库的。 MyBatis使用的准备工作 创建项目&#xff0c;导入mybatis的启动依赖&#xff0c;mysql的驱…...

Linux驱动开发基础(can)

目录 1.can的介绍 2.can的硬件连接 2.1 CPU自带can控制器 2.2 CPU没有can控制器 3.电气属性 4.can的特点 5.can协议 5.1 can的种类 5.2 数据帧 5.2.1 标准数据帧格式 5.3.1 扩展数据帧格式 5.3 遥控帧 5.4 错误帧 5.5 过载帧 5.6 帧间隔 5.7 位填充 5.8 位时…...

Linux 命令行整理(完善中)

文件类 查看文件类 cat 用于连接文件并打印到标准输出设备上&#xff0c;可用于查看文件内容.(短文件) use:cat example.txtmore 分页的形式显示文件内容&#xff0c;适合查看较长的文件&#xff08;长&#xff09; use: more example.txtless 也是分页查看文件内容&#xff…...

回调方法传值汇总

<template v-slot"scope"><el-switch v-model"scope.row.open" change"(p1) > changeOpen(p1, scope.row)"></el-switch></template>公域流量 多选 selection-change“val > multipleSelection val”...

分享一个精灵图生成和拆分的实现

概述 精灵图&#xff08;Sprite&#xff09;是一种将多个小图像合并到单个图像文件中的技术&#xff0c;广泛应用于网页开发、游戏开发和UI设计中。在MapboxGL中&#xff0c;跟之配套的还有一个json文件用来记录图标的大小和位置。本文分享基于Node和sharp库实现精灵图的合并与…...

python中的min函数的key的用法 - abs绝对值

前言 继续上一章节提及的 Python 中 min() 函数的用法&#xff0c;包括其基本语法、处理列表、接收多个参数 这个章节将补充一些新的知识点例如: min函数中key的另一种用法abs绝对值 min(iterable, *iterables, keyNone, defaultNone) 知识点 key 参数 key 是一个可选参数…...

我开发的PDF转WORD免费工具

ZhouShengHuan 欢迎小伙伴使用&#xff5e;...

kubernetes高级实战

一、模拟企业环境进行一个实战部署 [rootmaster node]# kubectl apply -f pod-tomcat.yaml pod/tomcat-test created [rootmaster node]# kubectl get pods NAME READY STATUS RESTARTS AGE tomcat-test 2/2 Running 0 2s [rootmaster node]…...

IntelliJ 配置文件plugin.xml

在 IntelliJ IDEA 插件开发中&#xff0c;plugin.xml 是插件的配置文件&#xff0c;它包含了关于插件的所有基本信息、扩展点、依赖关系等。该文件使用 XML 格式进行定义。以下是 plugin.xml 中常见的元素及其用途&#xff1a; <idea-plugin><!-- 插件的基本信息 --&…...

《心理学与生活》2025最新网课答案

《心理学与生活》2025最新网课答案 文章目录 《心理学与生活》2025最新网课答案发展与教育单元测试情绪与情感单元测验人格与动机单元测试感知与记忆单元测试文化与社会单元测试 发展与教育单元测试 题数 20 棉花糖实验中哪些小孩长大后的表现更好&#xff08;&#xff09;。 …...

11 python 数据容器-字符串

一、什么是数据容器 举个例子&#xff0c;一个办公室里有一群牛马&#xff0c;他们都有自己的名字&#xff0c;如果没有容器的概念&#xff0c;那么我们用变量来存放他们的名字&#xff0c;比如&#xff1a; name1 "翠花" name2 "玛丽" name3 "二…...

2025.3.20总结

阅读&#xff1a;《时间贫穷》第二章&#xff0c;里面讲到&#xff0c;运动&#xff0c;多行善事&#xff0c;体验自然&#xff0c;都会增强自我效能感&#xff0c;是对抗时间焦虑的强有力的方式。 花时间运动是值得的&#xff0c;公司每周三都是运动周&#xff0c;把运动视作…...

鸿蒙NEXT开发问题大全(不断更新中.....)

目录 问题1&#xff1a;鸿蒙NEXT获取华为手机的udid ​问题2&#xff1a;[Fail]ExecuteCommand need connect-key? 问题3&#xff1a;测试时如何安装app包 问题1&#xff1a;鸿蒙NEXT开发获取华为手机的udid hdc -t "设备的序列号" shell bm get --udid 问题2&…...

【北京迅为】iTOP-RK3568开发板OpenHarmony系统南向驱动开发UART接口运作机制

瑞芯微RK3568芯片是一款定位中高端的通用型SOC&#xff0c;采用22nm制程工艺&#xff0c;搭载一颗四核Cortex-A55处理器和Mali G52 2EE 图形处理器。RK3568 支持4K 解码和 1080P 编码&#xff0c;支持SATA/PCIE/USB3.0 外围接口。RK3568内置独立NPU&#xff0c;可用于轻量级人工…...

大模型在冠心病风险预测及临床方案制定中的应用研究

目录 一、引言 1.1 研究背景与目的 1.2 国内外研究现状 1.3 研究方法与创新点 二、大模型预测冠心病风险原理与方法 2.1 数据收集与预处理 2.1.1 数据来源 2.1.2 数据清洗与整理 2.2 特征工程 2.2.1 特征提取 2.2.2 特征选择与优化 2.3 模型选择与训练 2.3.1 常用…...

【从零开始:如何用Vue3打造响应式个人博客网站】

前言 在前端开发领域&#xff0c;Vue.js 是一个非常流行且强大的框架。本文将详细介绍如何使用 Vue3 构建一个完整的响应式个人博客网站。无论你是初学者还是有一定经验的开发者&#xff0c;本文都将为你提供详细的步骤和代码示例。 1. 环境搭建 首先&#xff0c;确保你已经安…...

【vulhub/wordpress靶场】------获取webshell

1.进入靶场环境&#xff1a; 输入&#xff1a;cd / vulhub / wordpress / pwnscriptum 修改版本号&#xff1a; vim docker-compose.yml version: 3 保存退出 开启靶场环境&#xff1a; docker - compose up - d 开启成功&#xff0c;docker ps查看端口 靶场环境80…...

ngx_http_conf_ctx_t

定义在 src/http/ngx_http_config.h typedef struct {void **main_conf;void **srv_conf;void **loc_conf; } ngx_http_conf_ctx_t; ngx_http_conf_ctx_t 是 Nginx 中用于管理 HTTP 配置上下文的核心结构体&#xff0c;其设计体现了 Nginx 多级配置&…...

大模型+知识图谱:赋能知识智能新升级

在大模型&#xff08;Large Language Model, LLM&#xff09;飞速发展的今天&#xff0c;如何把传统行业中沉淀多年的大量结构化与非结构化数据真正“用起来”&#xff0c;正成为推动智能化转型的关键一步。 找得到&#xff0c;看得懂&#xff0c;为何很难&#xff1f; 以制造…...

python学智能算法(八)|决策树

【1】引言 前序学习进程中&#xff0c;已经对KNN邻近算法有了探索&#xff0c;相关文章链接为&#xff1a; python学智能算法&#xff08;七&#xff09;|KNN邻近算法-CSDN博客 但KNN邻近算法有一个特点是&#xff1a;它在分类的时候&#xff0c;不能知晓每个类别内事物的具…...

压力测试实战指南:JMeter 5.x深度解析与QPS/TPS性能优化

一、压力测试基础概念 1.1 什么是压力测试&#xff1f; 定义&#xff1a;模拟极端负载场景验证系统性能极限 目的&#xff1a;发现性能瓶颈、评估系统可靠性、验证容错能力 常见类型&#xff1a;负载测试、压力测试、稳定性测试、峰值测试 1.2 核心性能指标解析 1.2.1 QP…...

鸿蒙NEXT项目实战-百得知识库04

代码仓地址&#xff0c;大家记得点个star IbestKnowTeach: 百得知识库基于鸿蒙NEXT稳定版实现的一款企业级开发项目案例。 本案例涉及到多个鸿蒙相关技术知识点&#xff1a; 1、布局 2、配置文件 3、组件的封装和使用 4、路由的使用 5、请求响应拦截器的封装 6、位置服务 7、三…...

Spring Boot Actuator 自定义健康检查(附Demo)

目录 前言1. Demo2. 拓展 前言 &#x1f91f; 找工作&#xff0c;来万码优才&#xff1a;&#x1f449; #小程序://万码优才/r6rqmzDaXpYkJZF Spring Boot 的 actuator 提供了应用监控的功能&#xff0c;其中健康检查&#xff08;Health Check&#xff09;是一个重要的部分&…...

Flutter小白零基础入门到高级项目实战全集

Flutter零基础入门到高级项目实战全集内容如下&#xff1a; Dart入门基础教程16讲、Null safety 、late 关键字、空类型声明符&#xff1f;、非空断言&#xff01;、required 、Flutter入门基础、Flutter瀑布流布局、Flutter动画、Flutter异步流、GlobalKey 、Flutter国际化、…...

TCP 协议

文章目录 TCP 协议简介数据包格式TCP的特性连接机制确认与重传缓冲机制全双工通信流量控制差错控制拥塞控制 端口号三次握手数据传输四次挥手抓包参考 本文为笔者学习以太网对网上资料归纳整理所做的笔记&#xff0c;文末均附有参考链接&#xff0c;如侵权&#xff0c;请联系删…...

NO.51十六届蓝桥杯备战|堆算法题|第k小|除2|最小函数值|序列合并|舞蹈课(C++)

P3378 【模板】堆 - 洛谷 #include <bits/stdc.h> using namespace std;const int N 1e6 10; int n; int heap[N];void up(int child) {int parent child / 2;while (parent > 1 && heap[child] < heap[parent]){swap(heap[child], heap[parent]);chil…...

【QA】观察者模式在QT有哪些应用?

1. 信号与槽机制 Qt的**信号与槽&#xff08;Signals & Slots&#xff09;**是观察者模式的典型实现&#xff0c;通过元对象系统&#xff08;Meta-Object System&#xff09;实现松耦合通信。 核心特点&#xff1a; 类型安全&#xff1a;编译时检查参数匹配跨线程支持&…...

coze ai assistant Task5

没想到coze的组队学习这么快就过去了&#xff0c;我也从一个不懂coze的小白变成了一个能简单尝试小程序的懵懂小白。虽然几次学习并不能掌握很多的技能&#xff0c;但也让我知道coze的无限可能&#xff0c;组队结束后我会继续努力学习&#xff0c;做更多使自己偷懒的小工具~ 需…...