Robust Univariate Mean Estimation算法简介
Robust Univariate Mean Estimation 是一种统计算法,主要用于在单变量场景中估计样本的均值,同时对异常值(outliers)具有鲁棒性。传统的均值估计使用样本的算术平均值,但它对异常值高度敏感。为了缓解这个问题,Robust Univariate Mean Estimation 算法设计了一种能够在数据中存在噪声或异常值的情况下仍然提供准确估计的方法。
以下是对该算法的详细介绍:
背景与意义
- 目标:估计一个随机变量 X X X 的总体均值 μ = E [ X ] \mu = \mathbb{E}[X] μ=E[X]。
- 挑战:实际数据可能包含异常值或受噪声影响,使得传统的均值(如样本平均值)失效。异常值可以显著偏离数据分布,导致均值估计偏离真实值。
- 鲁棒性:鲁棒算法的目的是即使在某些数据点偏离分布时,仍然能够接近真实的总体均值。
算法原理
Robust Univariate Mean Estimation 通常依赖于以下思想:
1. 抗噪声机制
- 通过设计拒绝异常值的方法,限制它们对估计的影响。
- 利用 截断技术(Truncation) 或 加权平均(Weighted Mean) 来减弱远离中心的数据点的权重。
2. 基于排序的方法
- 利用样本中值(median)替代均值:中值对异常值更为鲁棒,特别是在数据分布对称时。
- Winsorization 技术:将极端值替换为靠近数据中心的值,以减少其对整体估计的影响。
3. 迭代优化
- 通过多次迭代逐步收敛到一个更鲁棒的估计值。
- 使用动态权重调整:例如,基于样本点到中心的距离更新权重,靠近中心的数据点获得更大的权重。
4. 使用分布假设
- 在有一定分布假设的情况下,例如高斯分布,可以使用 Trimmed Mean(截断均值) 或 Huber Loss 来改进估计。
- Huber Loss 是一种将平方损失与绝对损失结合的目标函数,在异常值较大时会自动切换到绝对损失,从而减弱异常值的影响。
典型实现方法
(1) Trimmed Mean(截断均值)
- 按数据的大小排序,去掉上下两端的一部分数据,然后计算剩余数据的平均值。
- 假设有 n n n 个样本,去掉 α n \alpha n αn 个最大的和最小的样本,剩下的 ( 1 − 2 α ) n (1 - 2\alpha)n (1−2α)n 样本用于计算均值。
- α \alpha α 是一个超参数,通常根据数据集的异常值比例来设置。
(2) Median-of-Means (MoM)
- 将数据分成 k k k 个子集,每个子集计算均值。
- 最后选择这些子集均值的中值作为总体均值的估计。
- 优点:即使某些子集中包含异常值,其对最终估计的影响也被限制。
(3) Huber Mean Estimation
- 利用 Huber 损失函数定义的权重:
ρ ( x ) = { x 2 if ∣ x ∣ ≤ δ 2 δ ∣ x ∣ − δ 2 if ∣ x ∣ > δ \rho(x) = \begin{cases} x^2 & \text{if } |x| \leq \delta \\ 2\delta|x| - \delta^2 & \text{if } |x| > \delta \end{cases} ρ(x)={x22δ∣x∣−δ2if ∣x∣≤δif ∣x∣>δ - 参数 δ \delta δ 控制平方损失和线性损失之间的切换点。
算法性能与性质
-
鲁棒性
- 能有效抵抗少量异常值(通常占总数据的 ≤ 20 % \leq 20\% ≤20%)。
- 不依赖数据点的极端值,因此估计结果更接近真实均值。
-
效率
- 对比样本均值的 O ( n ) O(n) O(n) 复杂度,某些鲁棒算法可能需要更高复杂度(如排序带来的 O ( n log n ) O(n \log n) O(nlogn))。
-
适用性
- 尤其适用于分布未知或包含异常值的单变量场景。
实例应用
- 金融:估计资产回报的平均值时,剔除异常涨跌值。
- 医疗:分析生理指标(如血糖、心率)的均值时,过滤掉采集异常数据点。
- 工程:测量实验数据的中心值,去除仪器故障产生的极端值。
这个算法提供了一种鲁棒的单变量均值估计方法,利用了分组和区间截断的思想来抵抗异常值的干扰。我们逐步分解其逻辑和含义:
问题背景
- 输入数据: { z i } i = 1 2 n \{z_i\}_{i=1}^{2n} {zi}i=12n,包含 2 n 2n 2n 个点。
- 存在异常值:其中可能有 ϵ \epsilon ϵ 比例的点是被污染(corrupted)的。
- 目标:从中估计总体均值,确保异常值对结果的影响最小,同时提供某种信心水平 δ \delta δ。
算法步骤解读
1. 划分数据
- 将数据分成两部分:
- Z 1 = { z i } i = 1 n \mathcal{Z}_1 = \{z_i\}_{i=1}^n Z1={zi}i=1n(前 n n n 个样本)。
- Z 2 = { z i } i = n + 1 2 n \mathcal{Z}_2 = \{z_i\}_{i=n+1}^{2n} Z2={zi}i=n+12n(后 n n n 个样本)。
- 这种分组的目的:
- Z 1 \mathcal{Z}_1 Z1:用于确定一个鲁棒区间 I ^ = [ a , b ] \hat{I} = [a, b] I^=[a,b]。
- Z 2 \mathcal{Z}_2 Z2:验证数据点是否位于 I ^ \hat{I} I^ 中,并基于这些点估计均值。
2. 确定参数 α \alpha α
- 计算 α = max ( ϵ , log ( 1 / δ ) n ) \alpha = \max\left(\epsilon, \frac{\log(1/\delta)}{n}\right) α=max(ϵ,nlog(1/δ))。
- ϵ \epsilon ϵ:数据中被污染的点的比例。
- log ( 1 / δ ) n \frac{\log(1/\delta)}{n} nlog(1/δ):信心水平 δ \delta δ 带来的影响,反映对随机波动的容忍度。
- α \alpha α 决定了后续用于估计的样本比例,即剔除多少点作为异常点。
3. 确定鲁棒区间 I ^ \hat{I} I^
- 从 Z 1 \mathcal{Z}_1 Z1 构造区间 [ a , b ] [a, b] [a,b],具体方法:
- 排序数据:将 Z 1 \mathcal{Z}_1 Z1 按值从小到大排序。
- 计算区间长度:
- 包含的点数为:
n ( 1 − 2 α − 2 α log ( 4 / δ ) n − log ( 4 / δ ) n ) n\left(1 - 2\alpha - \sqrt{2\alpha \frac{\log(4/\delta)}{n}} - \frac{\log(4/\delta)}{n}\right) n(1−2α−2αnlog(4/δ)−nlog(4/δ)) - 这是在 Z 1 \mathcal{Z}_1 Z1 中选取的中间点的数量。
- 排除过大的 α \alpha α 部分和噪声导致的波动,从而获得一个尽量排除异常值的区间。
- 包含的点数为:
- 最短区间:
- 找到能容纳上述点数的最短区间,定义为 [ a , b ] [a, b] [a,b]。
- 直观理解: [ a , b ] [a, b] [a,b] 是在数据分布中筛选出的一个相对集中且鲁棒的核心区间,剔除了两端的潜在异常值。
4. 基于区间 [ a , b ] [a, b] [a,b] 筛选数据
- 在 Z 2 \mathcal{Z}_2 Z2 中,保留所有落在区间 [ a , b ] [a, b] [a,b] 中的点:
z i ∈ Z 2 且 z i ∈ [ a , b ] z_i \in \mathcal{Z}_2 \text{ 且 } z_i \in [a, b] zi∈Z2 且 zi∈[a,b] - 使用这些点估计均值。
5. 估计均值
- 使用落在 [ a , b ] [a, b] [a,b] 内的点计算加权均值:
μ ^ = 1 ∑ i = n + 1 2 n I { z i ∈ I ^ } ∑ i = n + 1 2 n z i I { z i ∈ I ^ } \hat{\mu} = \frac{1}{\sum_{i=n+1}^{2n} \mathbb{I}\{z_i \in \hat{I}\}} \sum_{i=n+1}^{2n} z_i \mathbb{I}\{z_i \in \hat{I}\} μ^=∑i=n+12nI{zi∈I^}1i=n+1∑2nziI{zi∈I^}- I { z i ∈ I ^ } \mathbb{I}\{z_i \in \hat{I}\} I{zi∈I^} 是指示函数,表示第 i i i 个样本是否在区间 [ a , b ] [a, b] [a,b] 中。
- 分母是区间内的点数,分子是这些点的值之和。
核心思想
-
分组处理数据:
- 分为 Z 1 \mathcal{Z}_1 Z1 和 Z 2 \mathcal{Z}_2 Z2,分别用于确定区间和验证区间。通过分组降低异常值影响。
-
通过区间筛选:
- 用 Z 1 \mathcal{Z}_1 Z1 的分布确定一个高置信区间 [ a , b ] [a, b] [a,b],排除可能的异常值。
-
利用有效数据估计均值:
- 通过 Z 2 \mathcal{Z}_2 Z2 中落在区间内的点估计均值,确保鲁棒性。
优点与适用性
-
鲁棒性:
- 剔除了异常值对均值估计的影响,尤其适用于数据中包含离群点或污染样本的场景。
-
计算效率:
- 通过简单排序和区间截断实现,复杂度较低。
-
适用范围:
- ϵ \epsilon ϵ 较小的场景(异常值比例不太高)。
- δ \delta δ 决定了算法的置信区间大小。
直观理解
这个算法的核心是“划分”和“筛选”:
- 用 Z 1 \mathcal{Z}_1 Z1 找到一个“可信”的区间,集中于主要数据分布中心,剔除异常值。
- 在 Z 2 \mathcal{Z}_2 Z2 中只用落在区间内的数据估计均值,确保均值估计不会被异常值拉偏。
如果还有不清楚的部分,可以继续具体探讨!
在这个算法中, Z 1 \mathcal{Z}_1 Z1 和 Z 2 \mathcal{Z}_2 Z2 的划分并不是随机的,而是直接按照输入数据 { z i } i = 1 2 n \{z_i\}_{i=1}^{2n} {zi}i=12n 的顺序进行分割:
- Z 1 = { z 1 , z 2 , … , z n } \mathcal{Z}_1 = \{z_1, z_2, \dots, z_n\} Z1={z1,z2,…,zn} —— 前 n n n 个样本。
- Z 2 = { z n + 1 , z n + 2 , … , z 2 n } \mathcal{Z}_2 = \{z_{n+1}, z_{n+2}, \dots, z_{2n}\} Z2={zn+1,zn+2,…,z2n} —— 后 n n n 个样本。
划分方式特点
- 顺序划分:算法假定输入数据 { z i } i = 1 2 n \{z_i\}_{i=1}^{2n} {zi}i=12n 是随机打乱(或无偏采样)的,因此直接按顺序分割可以近似视为随机划分。
- 独立性: Z 1 \mathcal{Z}_1 Z1 和 Z 2 \mathcal{Z}_2 Z2 被用作不同目的的数据子集,因此分开处理的好处在于:
- Z 1 \mathcal{Z}_1 Z1:用于构造区间 [ a , b ] [a, b] [a,b],提供关于数据分布的鲁棒信息。
- Z 2 \mathcal{Z}_2 Z2:用于估计均值,仅使用落在区间内的数据,从而避免对区间本身产生偏倚。
为什么不随机划分?
虽然随机划分可以在理论上保证独立性,但固定顺序的划分有以下实际好处:
- 实现简单:直接按照数据顺序分割,无需额外的随机操作。
- 高效性:在实现中避免了额外的开销(如随机种子设置或洗牌操作)。
- 适用场景:对于无偏数据输入(例如已随机打乱的数据),顺序分割效果等价于随机分割。
注意事项
如果输入数据存在顺序依赖(如时间序列数据)或未打乱,直接顺序划分可能会导致 Z 1 \mathcal{Z}_1 Z1 和 Z 2 \mathcal{Z}_2 Z2 无法充分代表整体分布。在这种情况下:
- 解决方法:在划分前对 { z i } \{z_i\} {zi} 进行洗牌操作,确保其无序性,然后再按上述方式顺序划分。
总之,在默认假设数据是无序(打乱)的情况下, Z 1 \mathcal{Z}_1 Z1 和 Z 2 \mathcal{Z}_2 Z2 是按顺序划分的,而不需要随机划分。
相关文章:
Robust Univariate Mean Estimation算法简介
Robust Univariate Mean Estimation 是一种统计算法,主要用于在单变量场景中估计样本的均值,同时对异常值(outliers)具有鲁棒性。传统的均值估计使用样本的算术平均值,但它对异常值高度敏感。为了缓解这个问题…...
区块链智能合约( solidity) 安全编程
引言:本文由天玄链开源开发者提供,欢迎报名公益天玄链训练营 https://blockchain.163.com/trainingCamp 一、重入和竞态 重入和竞态在solidity 编程安全中会多次提及,历史上也造成了重大的损失。 1.1 问题分析 竞态的描述不严格…...
断点续传【授权访问】
本文介绍如何使用STS以及签名URL临时授权访问OSS资源。 授权方式 OSS支持多种授权方式进行客户端授权,以下提供了三种不同授权方式的简要说明,并提供了使用相应授权方式实现简单上传的代码示例,您可以根据使用场景对认证和授权的要求&#…...
中华国际游艇会出席第六届地博会助世界酒中国菜地理标志走向全球
中华国际游艇会积极参与第六届知交会暨地博会,助力世界酒中国菜地理标志产品走向全球 第六届粤港澳大湾区知识产权交易博览会暨国际地理标志产品交易博览会于2024年12月9日至11日在中新广州知识城盛大举行。此次盛会汇聚了众多行业精英和企业代表,共同探…...
Python爬虫——HTML中Xpath定位
Xpath是一种路径查询语言。利用一个路径表达式从html文档中找到我们需要的数据位置,进而将其写入到本地或者数据库中。 学习Xpath爬虫,我们首先学习一下python中lxml库 关于库 lxml 终端下载Xpath需要用到的模块 pip install lxml 关于HTML 超文本标…...
Ubuntu防火墙管理(六)——ARP防火墙过滤防御自定义系统服务
起因 在ubuntu24.04中检查arp表,输出异常 arp -a? (10.162.242.142) 位于 74:3a:20:b9:e8:02 [ether] 在 wlp2s0 ? (10.162.0.1) 位于 在 wlp2s0 ubuntu环境中,这是否表示ARP攻击,本地网关为10.162.0.1,可用arptables防御吗&a…...
Halcon_数据类型_ROI_仿射变换_投影变换
文章目录 算子快捷键一、Halcon数据类型Iconic (图标)Control (控制)Tuple (数组) 二、ROI(区域)1.代码创建ROI2.手动创建ROI 三、图形预处理1.图像的变换与矫正平移 -hom_mat2d_translate旋转缩放-HomMat2D:输入的仿射…...
java+ssm+mysql高校学籍管理系统
项目介绍: 使用javassmmysql开发的高校学籍管理系统,系统包含超级管理员,系统管理员、教师、学生角色,功能如下: 超级管理员:管理员管理(可以新增管理员);专业管理&…...
多表设计-一对多一对多-外键
一.多表设计概述: 二.一对多: 1.需求: 根据 页面原型 及 需求文档,完成部门及员工模块的表结构设计 -->部门和员工就是一对多,因为一个部门下会有多个员工,但一个员工只归属一个部门 2.页面原型&…...
Scala的正则表达式(1)
package hfd //正则表达式的应用场景 //1.查找 findAllin //2.验证 matches //3.替换//验证用户名十分合法 //规则: //1.长度在6-12之间 //2.不能数字开头 //3.只能包含数字,大小写字母,下划线 object Test36 {def main(args: Array[String])…...
uniapp扭蛋机组件
做了一个uniapp的扭蛋机组件,可以前往下载地址下载 仅测试了vue2、3、h5页面微信小程序,理论支持全平台 使用方法简单,具有待机动效、抽奖中动效、掉落奖品动效,可以替换奖品图片,足以满足大部分抽奖页面需求。 示例图…...
并发背后的技术与原理
一个Java Web项目能够同时支持多个用户请求,而不会导致数据混乱,这主要得益于Java平台的多线程处理机制、Web容器的请求处理模型以及良好的编程实践。 Java的多线程处理: Java是一种支持多线程的编程语言。在Java Web应用中,每个用…...
HarmonyOS(63) ArkUI 自定义占位组件NodeContainer
NodeContainer 1、前言2、NodeContainer和NodeController3、示例代码3.1、创建@Builder3.2、 创建NodeController3.3、 使用NodeCtroller4、NodeContainer的作用5、FrameNode简介6、BuilderNode简介7、参考资料1、前言 在HarmonyOS(62) ArkUI @Reusable组件复用原理讲了组件复…...
机器学习实战学习笔记:前言与准备
个人学习介绍 该专栏作为《机器学习实战(原书第三版)》的读书笔记,涉及对书本内容的理解和书本内容原有的示例和部分原文。略懂一点点python语法编程环境选用python 3.12.1 ,IDE为 DataSpell (主要)&#…...
Linux应用开发————多线程的互斥与同步——同步
同步和互斥 互斥:是指某一资源同时只允许一个访问者对其进行访问,具有唯一性和排它性。但互斥无法限制访问者对资源的访问顺序,即访问是无序的。 同步:是指在互斥的基础上(大多数情况),通过其它机制实现访问者对资源的有序访问。 条件变量机制…...
【人工智能】深度解剖利用人工智能MSA模型
目录 情感分析的应用一、概述二、研究背景三、主要贡献四、模型结构和代码五、数据集介绍六、性能展示七、复现过程 情感分析的应用 近年来社交媒体的空前发展以及配备高质量摄像头的智能手机的出现,我们见证了多模态数据的爆炸性增长,如电影、短视频等…...
Java 环境配置 + IntelliJ IDEA 使用指南
文章目录 一、Java 程序的运行必须经过3 个步骤:编写、编译、运行(1)Java 和 JavaScript 的区别(2)JDK、JRE、JVM 的关系(3)是否需要 Maven? 二、软件下载2.1、JDK下载与安装 —— 是…...
兴业周报|楼市新政效果显著~单周成交破5亿~
香山清琴山庄丙19号(独栋别墅) 稀缺房源:标的物为京城少有的独栋别墅,在连续的 “限墅令” 及相关容积L限制政策下,市场上独栋别墅的新增供应不断减少。 环境优美:香山清琴山庄依山而筑,错落有…...
学习笔记063——通过使用 aspose-words 将 Word 转 PDF 时,遇到的字体改变以及乱码问题
文章目录 1、问题描述:2、解决方法: 1、问题描述: Java项目中,有个需要将word转pdf的需求。本人通过使用aspose-words来转换的。在Windows中,转换是完全正常的。但是当部署到服务器时,会出现转换生成的pdf…...
人工智能导论学习笔记
目录 一、概要 二、人工智能基础知识 智能 人工智能 人工智能三要素 人工智能发展历程 人工智能的三次浪潮 人工智能行业发展现状 人工智能技术水平现状 人工智能技术层级 人工智能应用开发周期 机器学习的流程 一、概要 《人工智能导论(通识版)》张大斌 田恒义 许…...
FCOS: Fully Convolutional One-Stage Object Detection——全卷积一阶段目标检测
FCOS(Fully Convolutional One-Stage Object Detector)是一种全卷积的单阶段目标检测器,旨在通过消除锚点(anchor)的使用,简化目标检测的流程。以下是FCOS的主要特点和组成部分: 1. 无锚点设计…...
《Java核心技术I》映射条目的原子更新
映射条目的原子更新 ConcurrentHashMap只有部分原子更新。 JavaAPI提供了一些新方法,例如:compute方法可以提供一个键和一个计算新值的函数。 map.compute(word,(k,v)->v null ? 1 : v1) 注释:ConcurrentHashMap中不允许有null值。很…...
微信小程序介绍-以及写项目流程(重要)
前言:本篇文章介绍微信小程序以及项目介绍: 文章介绍:介绍了微信小程序常用的指令、组件、api。tips:最好按照官方文档来进行学习,大致可以我的目录来学习,对于写项目是没有问题的 微信小程序官方文档https…...
241207-通过Docker部署Wiki.JS并设置ElasticSearch进行中文搜索
A. 最终效果 B. 配置文件 version: "3" services:wiki:image: ghcr.io/requarks/wiki:2container_name: wikijsports:- "3000:3000"volumes:- /home/lgk/Projects/WikiJS/config:/configenvironment:- DB_TYPEpostgres- DB_HOSTdatabase- DB_PORT5432- DB…...
yum 离线软件安装
适用范围 支持YUM软件管理的操作系统: 银河麒麟 服务器操作系统V10统信服务器操作系统V20CentOS 系列 准备 准备一台可以连接互联网并且与离线安装的操作系统相同版本的操作系统,包括指令集类型相同。 安装下载工具 查询是否已经安装下载工具 yum…...
【jvm】垃圾回收的优点和原理
目录 1. 说明2. 优点3. 原理3.1 发现无用对象3.2 回收无用对象所占用的内存 4. 回收算法4.1 标记-清除算法4.2 复制算法4.3 标记-整理算法4.4 分代收集算法 1. 说明 1.JVM(Java虚拟机)垃圾回收是Java语言的一大特性,它自动管理内存ÿ…...
LeetCode322. 零钱兑换(2024冬季每日一题 28)
给你一个整数数组 coins ,表示不同面额的硬币;以及一个整数 amount ,表示总金额。 计算并返回可以凑成总金额所需的 最少的硬币个数 。如果没有任何一种硬币组合能组成总金额,返回 -1 。 你可以认为每种硬币的数量是无限的。 示…...
LearnOpenGL学习(高级OpenGL --> 帧缓冲,立方体贴图,高级数据)
完整代码见:zaizai77/Cherno-OpenGL: OpenGL 小白学习之路 帧缓冲 帧缓冲(FrameBuffer)是所有屏幕缓冲(包括颜色缓冲,深度缓冲,模板缓冲)的集合。它被存储在GPU内存中,我们可以定义…...
mysql笔记——索引
索引 InnoDB采用了B树索引结构。 相比于二叉树,层级更少,搜索效率高。 B树中叶子节点和非叶节点都会存储数据,导致段页式存储中一页存储的键值减少,指针也会减少,要同样保存大量数据,只能增加树的高度&a…...
React第十五节useReducer使用详解差异
useReducer() 的用法注意事项 1、 概述: useReducer() 常用于管理复杂的状态更新逻辑,特别是在状态更新依赖于多个条件或动作时,useReducer 提供了一种更加结构化和可维护的方式来处理状态。可以将更新函数写在组件外面 它与 useState() 相…...
高效备考 Oracle 19c OCM 的建议
满足报考条件 考生需要先获得 19c OCP(Oracle Certified Professional)认证,并完成 Oracle 官方认可的 OCP 培训课程 制定学习计划 规划学习时间:根据考试时间和自己的日常安排,制定详细的学习计划,合理分配…...
01-Chromedriver下载与配置(mac)
下载地址: 这里我用的最后一个,根据自己chrome浏览器选择相应的版本号即可 ChromeDriver官网下载地址:https://sites.google.com/chromium.org/driver/downloads ChromeDriver官网最新版下载地址:https://googlechromelabs.git…...
网站流量和用户行为深度分析
关于网站流量数据集的探索 import pandas as pd import plotly.express as px import plotly.graph_objects as go import plotly.subplots as sp import matplotlib.pyplot as plt import seaborn as sns file_path /home/mw/input/webs4651/website_wata.csv data pd.rea…...
centOS7如何配置阿里云或者腾讯云yum源
众所周知,CentOS很多版本目前已经不再维护了,原本的在线yum源已经无法使用,所以需要我们配置其他的yum源。目前腾讯云或者阿里云的yum源都可以正常使用,所以本文教大家如何配置阿里云/腾讯云在线yum源。 阿里云yum源配置…...
洗鞋小程序(源码+文档+部署+讲解)
本文将深入解析“洗鞋小程序”的项目,探究其架构、功能以及技术栈,并分享获取完整源码的途径。 系统概述 为洗鞋提供服务,包含小程序和管理端。 本项目名称为洗鞋小程序,是一个基于小程序的在线洗鞋平台。该系统提供下单、订单管…...
MySQL|通过JSON_UNQUOTE实现MySQL中JSON数据的干净提取
文章目录 语法使用示例注意事项 JSON_UNQUOTE() 是 MySQL 中用于处理 JSON 数据类型的一个函数。它的主要作用是从 JSON 字符串中移除最外层的引号,这对于从 JSON 对象或数组中提取字符串值特别有用。 语法 JSON_UNQUOTE(json_string)json_string: 这是你想要去掉引…...
动态规划part01
文章参考来源代码随想录 理论基础 适用范围: 如果某一问题有很多重叠子问题,使用动态规划是最有效的。 与贪心算法的区别: 动态规划中每一个状态一定是由上一个状态推导出来的,这一点就区分于贪心,贪心没有状态推…...
生活大爆炸版石头剪刀布(洛谷P1328)
生活大爆炸版石头剪刀布(洛谷P1328) [NOIP2014 提高组] 前言: 由于洛谷发布题解有限制,所以在CSDN上发布洛谷题解。 所有题解均是Java语言, 但是思路是相同的 每篇都是刷题日常,尽量讲清楚算法逻辑。 希望有问题还请大佬们指导! …...
【GOOD】DeGEM
ICLR2025 under review 看到不错的想法,学习一下 Decoupled Graph Energy-based Model for Node Out-of-Distribution Detection on Heterophilic Graphs 🐱🐶图上的OOD检测的工作是比较少的,相比于图像数据,图结构数…...
jenkins邮件的配置详解
Jenkins邮件的配置涉及多个步骤和细节,以下是详细的配置指南: 一、前期准备 确定邮件服务:明确Jenkins将要使用的邮件服务,如QQ邮箱、163邮箱、公司邮箱(基于Microsoft 365或Exchange Server)等。获取SMTP配置信息:根据邮件服务类型,获取相应的SMTP服务器地址、端口号…...
flask-socketio相关总结
flask-socketio是一个为flask应用程序添加的实时双向通信功能的扩展库,有了这个库,就可以在flask应用中应用websocket协议,帮助flask实现低延迟、双向的客户端、服务端通信。客户端通过任何SocketIO官方库,都能与服务器建立长连接…...
每日一题 LCR 097. 不同的子序列
LCR 097. 不同的子序列 使用动态规划就可以解决,重点是知道 动态规划的状态是如何转移的 class Solution { public:int numDistinct(string s, string t) {int ns s.size();int nt t.size();vector<vector<long>> dp(ns1,vector<long>(nt1,0)…...
合并区间C和C++的区别、布尔、整型、浮点、指针类型和0做比较、malloc、calloc、realloc的区别
56. 合并区间 class Solution { public:vector<vector<int>> merge(vector<vector<int>>& intervals) {//先按照每个区间的左元素排序,这样每个区间的左边界就固定了,所以之后考虑相邻的//区间是否是相交的就行 类似与栈的…...
设计模式-外观模式
背景 有一个家庭影院,有DVD播放器,投影仪,屏幕,音响,爆米花机,每一个设备都有一个遥控器。 传统思路: 创建一个客户端类,在这个类中创建所有设备的相关对象(遥控器&am…...
嵌入式驱动开发详解14(SPI驱动架构实现)
文章目录 前言SPI简介SPI介绍SPI工作模式SPI特点 驱动开发驱动架构SPI控制器驱动SPI设备驱动SPI 设备和驱动匹配过程SPI其他相关API函数 参考文献 前言 SPI 是很常用的串行通信协议,可以通过 SPI 来连接众多的传感器,相比 I2C 接 口,SPI 接口…...
【保姆级系列:思科模拟器安装下载汉化教程大全】
文章目录 概述Packet Tracer下载Packet Tracer安装Packet Tracer使用EVE-NG下载:EVE-NG安装:EVE-NG使用: 概述 思科在网络界的地位是众所周知的。如果说在中美科技战中,华为代表CHN,那么思科就代表US,依然…...
2024 一带一路暨金砖国家技能发展与技术创新大赛【网络安全防护治理实战技能赛项】样题(中职组)
2024 一带一路暨金砖国家技能发展与技术创新大赛【网络安全防护治理实战技能赛项】样题(中职组) 1.基础设置和安全强化(xxx 分)1.3. 任务内容: 2.安全监测和预警(xxx 分)2.1. 任务一:建立目录安…...
QT 中基于 TCP 的网络通信
基础 基于 TCP 的套接字通信需要用到两个类: 1)QTcpServer:服务器类,用于监听客户端连接以及和客户端建立连接。 2)QTcpSocket:通信的套接字类,客户端、服务器端都需要使用。 这两个套接字通信类…...
React Native 速度提升 550%
React Native 爱好者们!🌟 您准备好听一些激动人心的消息了吗?React Native 刚刚发布了其最大的更新之一:一种全新的架构,彻底改变了我们构建移动应用程序的方式。如果您想知道这对您的项目和开发体验意味着什么,请继续关注!我们正在深入探讨这个改变游戏规则的事物;您…...
火语言RPA流程组件介绍--键盘按键
🚩【组件功能】:模拟键盘按键 配置预览 配置说明 按键 点击后,在弹出的软键盘上选择需要的按键 执行后等待时间(ms) 默认值300,执行该组件后等待300毫秒后执行下一个组件. 输入输出 输入类型 万能对象类型(System.Object)输出类型 万能对象类型…...