深入浅出 算法 森林

C++中的STL容器和算法

C++ STL(标准模板库)提供了一组丰富的容器和算法,使得开发者能够更加高效地编写程序。本文将介绍STL中的一些常用容器和算法。 容器 vector vector是一个动态数组,可以在运行时调整大小。它的优点在于可以快速地访问元素,缺点是在插入和删除元素时需要移动后面的元素。 #include < ......
算法 容器 STL

一文带你了解区块链中15种共识算法

所有主要的区块链共识算法解释 区块链技术席卷全球,提供了一种去中心化且安全的信息存储和传输方式。它还彻底改变了交易的执行方式,随之而来的是广泛的共识算法。在这里,共识算法在确保区块链网络的完整性方面发挥着关键作用。在本文中,我们将探讨所有主要类型的区块链共识算法、它们的含义、优点、缺点,以及为什么它 ......
区块 共识 算法

[2core]加解密算法

本文主要记录从.netframework迁移到.net6后,加解密算法的跨平台测试,如AES和RSA算法。因为RSA使用了BouncyCastle类库提供的实现,所以并没有遇到什么问题。 完成加解密算法跨平台测试,迁移工作算是告一段,也标志着从.netframework迁移.net6工作完毕。 迁移 ......
算法 2core core

KMP算法

KMP算法用于解决字符串匹配问题, str1 某个字符串是否与 str2 一样, 如果一样, 返回 str2 开始的位置 //KMP算法模板 int n,m; char s[N],p[M]; int ne[M]; //s[]是长文本,p[]是模式串(短串),n是s的长度,m是p的长度 //读入字符串 ......
算法 KMP

一文彻底搞懂ZAB算法,看这篇就够了!!!

最近需要设计一个分布式系统,需要一个中间件来存储共享的信息,来保证多个系统之间的数据一致性,调研了两个主流框架Zookeeper和ETCD,发现都能满足我们的系统需求。其中ETCD是K8s中采用的分布式存储,而其底层采用了RAFT算法来保证一致性,之前已经详细分析了Raft算法的原理,今天主要仔细分 ......
算法 ZAB

[练习记录] 《算法竞赛进阶指南》打卡活动

89. a^b 题目大意 给 $a,b,p$ 求 $a^b \mod p$。 思路 可以直接快速幂。当模数 $p$ 为 $1$ 的时候特判一下。 代码 ll a, b, mod; ll qpow(ll a, ll b) { ll res = 1; while (b) { if (b & 1) res ......
算法 指南

分块+莫队算法

分块 复杂度$O(n \sqrt n)$ 主要目的是解决一些区间操作问题 把区间拆分成 $\sqrt{n}$ 大小的块 每次碰到修改的操作,对于散块,直接暴力操作,对于整块,那么用一个 $tag$ 进行标记即可 也就是说对于一个操作 $[l,r]$ 来说 我们需要进行操作主要分三步: 暴力操作头散块 ......
算法

Gusfield算法学习

算法详解 等价流树正如其名,树上两点间的路径上的边权最小值为图上两点间的最小割。 Gusfield算法就是建等价流树的一种算法。设当前正在处理的集合为 $S(|S|\ge 2)$,从 $S$ 中任选两个点 $x,y$,求出 $x,y$ 间的最小割也就是最大流 $flow$,此时在最小割树中加入一条从 ......
算法 Gusfield

Berlekamp–Massey 算法 小记

神秘算法,模拟赛对着死磕了3.5h 然后发现是高科技,大家都不会,但是大家都会 T3 ,输麻了。 这个算法是一个增量构造的过程,我们尝试维护前 $i-1$ 项的递推式,然后对于加入 第 $i$ 项后调整。 具体的,假设我们有一个数列 $1,2,4,10,24,50$,最初我们的递推式是 ${}$。 ......
小记 算法 Berlekamp Massey

三维重建原理和算法

原理 采集深度图像:使用深度相机采集场景深度信息,并将其转换为深度图像。 点云生成:根据深度图像,将场景中的点云数据进行生成。 点云滤波:对于采集到的点云数据进行滤波处理,去除无效数据点。 点云配准:如果需要将多个点云数据融合为一个完整的点云模型,需要进行点云配准操作,使得各个点云数据之间能够对齐。 ......
算法 原理

jQuery轮播图(模仿滑动窗口算法)

``` const status = [ "left:0px;", "left:10px;", "left:20px;", "left:30px;", "left:40px;", ]; const list = $("#carousel > ul > li"); const len = list.l ......
算法 jQuery

深入学习RabbitMQ五种模式(三)

1.路由模式(精确匹配) 路由模式(Routing)的特点: 该模式的交换机为direct,意思为定向发送,精准匹配。 队列与交换机的绑定,不能是任意绑定了,而是要指定一个RoutingKey(路由key) 消息的发送方在向Exchange发送消息时,也必须指定消息的 RoutingKey。 Exc ......
RabbitMQ 模式

深入学习RabbitMQ五种模式(二)

# 1.工作模式 工作模式也被称为任务模型(Task Queues)。当消息处理比较耗时的时候,可能生产消息的速度会远远大于消息的消费速度。长此以往,消息就会堆积越来越多,无法及时处理。此时就可以使用 work 模型:让多个消费者绑定到一个队列,共同消费队列中的消息。队列中的消息一旦消费,就会消失, ......
RabbitMQ 模式

深入学习RabbitMQ五种模式(一)

1.安装erlang 下载otp_win64_25.3.exe https://www.erlang.org/downloads erlang安装完成,需要配置erlang环境变量 ERLANG_HOME=E:\software\Erlang OTP PATH=%PATH%;%ERLANG_HOME ......
RabbitMQ 模式

[ML从入门到入门] 支持向量机:SMO算法的收敛性分析

引言 上一篇文章我们介绍了 SMO 算法,作为其姊妹篇,本文将对 SMO 算法的收敛性进行扼要地分析,同时,希望能为读者提供新的角度去理解 SMO 算法的原理。 证明思路来自于《Convergence of a Generalized SMO Algorithm for SVM Classifier ......
向量 算法 SMO

基于模拟退火算法的车间调度优化matlab仿真,输出甘特图

1.算法仿真效果 matlab2022a仿真结果如下: 优化目标: 最小平均流动时间 粒子数:100 循环代数:500 变异率:0.35 变异变换对数:3 模拟退火初始值:1000 模拟退火终值:0 最小平均流动时间:43 最大完工时间:61 最小间隙时间:60 最优粒子3 1 3 6 4 5 3 ......
算法 车间 matlab

基于LBP人脸特征提取算法的人员身份信息验证matlab仿真

1.算法仿真效果 matlab2022a仿真结果如下: 2.算法涉及理论知识概要 LBP(Local Binary Patterns,局部二值模式)是提取局部特征作为判别依据的。LBP方法显著的优点是对光照不敏感,但是依然没有解决姿态和表情的问题。不过相比于特征脸方法,LBP的识别率已经有了很大的提 ......
人脸 算法 特征 身份 人员

第2-2讲,深入了解label-标签属性2

标签属性讲解: 准备工作,准备一个空窗口,进行测试: import tkinter as tk #创建窗体 window=tk.Tk() #设置窗体标题 window.title("标签属性") window.iconbitmap('images/米饭.ico') #设置窗体大小 window.ge ......
属性 标签 label

第2-1讲,深入了解label

Label是用来显示文本或图像的组件。是的,你没有看错,这个标签不但可以显示文本,也可以显示图像。但文本目前只能显示单一大小,单一字体的文本,在显示图像方面,用PhotoImage()支持只显示jpg和png格式的图像。 建立一个显示文本的Lable,语法如下: 新建标签名=Label(父组件, t ......
label

Gusfield算法学习

算法详解 感觉最小割树是个很神奇的东西。 最小割树有一个性质:原图上的两点间的最小割大小和方案正好有一种是树上对应两点间的最小割大小和方案。 那么怎么建出这样的树呢?可以用到Gomory-Hu Tree。但我们通常只需要用到大小,这时候我们可以建出等价流树。 Gusfield算法就是建等价流树的一种 ......
算法 Gusfield

JAVA AES 加密算法实现

import javax.crypto.Cipher; import javax.crypto.spec.IvParameterSpec; import javax.crypto.spec.SecretKeySpec; import java.nio.charset.StandardCharsets ......
算法 JAVA AES

二分查找算法讲解及其C++代码实现

二分查找算法是一种常用的查找算法,也被称为折半查找。它可以在有序的数组或列表中快速查找需要的元素。 算法描述: 首先确定数组的中间位置mid=(left+right)/2; 然后将要查找的值key与中间位置的值进行比较; 如果key等于中间位置的值,则查找成功,返回mid; 如果key小于中间位置的 ......
算法 代码

《深入理解计算机系统》第六章学习笔记 存储器层次结构

到目前为止,在对系统的研究中,我们依赖于一个简单的计算机系统模型,CPU执行指令,而存储器系统为CPU存放指令和数据。在简单模型中,存储器系统是一个线性的字节数组,而CPU能够在一个常数时间内访问每个存储器位置。 实际上,存储器系统是一个具有不同容量、成本和访问时间的存储设备的层次结构。CPU寄存器 ......
存储器 层次 结构 计算机 笔记

第1-1讲,tkinter窗口深入了解

一个完整的tkinter程序的3部分 一般来说,一个完整的tkinter程序就3个部分: 第1部分是:导入模块部分 第2部分是:生成窗体,创建组件并处理事件的相关代码 第3部分是:维持窗体,等待事件发生的语句:mainloop 用代码创建我们的第一个窗体 用tkinter代码建立一个窗体,很容易,只 ......
tkinter

C# 卡车装车算法2

1. 创建一个货物类,包含长、宽、高、重量、颜色、标签等属性,并定义一个列表用于存储所有货物对象。 public class Cargo { public float length; public float width; public float height; public float weig ......
卡车 算法

《啊哈 算法》读书笔记 附PDF #C2

《啊哈算法》这本书是由Northeastern大学的教授哈林顿(Harrrington)所著,是一本在自学算法中十分有用的工具书。阅读完此书后,我颇有感触,下面就来谈谈我的读后感体验。 首先,本书的内容非常易懂。作者通过通俗易懂的语言和生动形象的图片,将复杂的算法理论一步步讲解,使人们能够轻松理解难 ......
算法 笔记 PDF C2

Redis+lua 实现令牌桶限流算法

使用 lua := redis.NewScript(script) args[0] = strconv.Itoa(fillInterval) args[1] = strconv.FormatInt(time.Now().Unix()*1000, 10) res, err := lua.Run(con ......
令牌 算法 Redis lua

字节前端--深入JS

首先先介绍JS的基本概念: 比如是单线程,动态,弱类型等等。 除了这些东西之外还有: 下面的一些基础概念: JavaScript 是一种脚本语言,通常在网页上运行。 JavaScript 不需要编译,因为它是一种解释性语言。 在网页上添加 JavaScript 的方式有多种,包括内联脚本、嵌入式脚本 ......
前端 字节

关于聚合根,领域事件的那点事---深入浅出理解DDD

通过小demo的方式跟大家分享一下我对DDD中战术层级的理解,算是抛砖引玉,该理解仅代表我个人在现阶段的一个理解,也可能未来随着业务经验深入,还会有不同的理解。 ......
深入浅出 领域 事件 DDD

部分排序算法总结

1.冒泡排序 冒泡排序是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端 思路: 将相邻的元素进行比较,如 ......
算法 部分