cryptography算法hash
力扣上任务调度相关的算法
[TOC] # 应用 ## 应用1:Leetcode 1834. 单线程 CPU ### 题目 [1834. 单线程 CPU](https://leetcode.cn/problems/single-threaded-cpu/) > 给你一个二维数组 tasks ,用于表示 n 项从 0 到 n - ......
C#中使用CAS实现无锁算法
CAS 的基本概念 CAS(Compare-and-Swap)是一种多线程并发编程中常用的原子操作,用于实现多线程间的同步和互斥访问。 它操作通常包含三个参数:一个内存地址(通常是一个共享变量的地址)、期望的旧值和新值。 CompareAndSwap(内存地址,期望的旧值,新值) CAS 操作会比较 ......
高效的二进制取模算法
#### 限制必须是 长度必须是2的指数 * 直接取指数的低位长度算法 #### 演示 * 长度为8 * 0b000(0) * 0b001(1) * 0b010(2) * 0b011(3) * 0b100(4) * 0b101(5) * 0b110(6) * 0b11(7) * 13 二进制 0x1 ......
算法题总结-最长回文序列
原题 https://www.nowcoder.com/practice/3cd4621963e8454594f00199f4536bb1?tpId=37&tqId=21255&rp=1&ru=/exam/oj/ta&qru=/exam/oj/ta&sourceUrl=%2Fexam%2Foj%2F ......
迪杰斯特拉算法
## 前言 复习计算机网络, 这里总结一下迪杰斯特拉算法过程, 方便复习. ## 迪杰斯特拉算法过程 ![](https://img2023.cnblogs.com/blog/3023328/202306/3023328-20230615001700337-1770589253.png) 表格中 " ......
如何在 Python 中实现遗传算法
# 前言 遗传算法是一种模拟自然进化过程与机制来搜索最优解的方法,它由美国 John Holland 教授于20世纪70年代提出。遗传算法的主要思想来源于达尔文生物进化论和孟德尔的群体遗传学说,通过数学的方式,将优化问题转换为类似生物进化中的染色体基因的交叉和变异等过程,因此具有坚实的生物学基础和鲜 ......
算法学习day57动态规划part17-516、647
package LeetCode.DPpart17; /** * 516. 最长回文子序列 * 给你一个字符串 s ,找出其中最长的回文子序列,并返回该序列的长度。 * 子序列定义为:不改变剩余字符顺序的情况下,删除某些字符或者不删除任何字符形成的一个序列。 * */ public class Lo ......
算法学习day56动态规划part16-583、72
package LeetCode.DPpart16; /** * 583. 两个字符串的删除操作 * 给定两个单词 word1 和 word2 ,返回使得 word1 和 word2 相同所需的最小步数。 * 每步 可以删除任意一个字符串中的一个字符。 * */ public class Delet ......
算法学习day55动态规划part15-115、392
package LeetCode.DPpart15; public class DistinctSubsequences_115 { public int numDistinct(String s, String t) { int[][] dp = new int[s.length() + 1][t ......
算法题总结-完全背包问题
原题 现有n种砝码,重量互不相等,分别为 m1,m2,m3…mn ; 每种砝码对应的数量为 x1,x2,x3...xn 。现在要用这些砝码去称物体的重量(放在同一侧),问能称出多少种不同的重量。 输入描述 ``` 对于每组测试数据: 第一行:n 砝码的种数(范围[1,10]) 第二行:m1 m2 m ......
m基于MPC模型预测控制算法的永磁直线同步电机控制系统simulink仿真,MPC分别使用工具箱和S函数进行设计
1.算法仿真效果 matlab2022a仿真结果如下: 2.算法涉及理论知识概要 MPC(Model Predictive Control)模型预测控制算法是一种先进的控制算法,能够有效地解决非线性、多变量、约束条件等复杂系统的控制问题。永磁直线同步电机是一种高性能、高效率的电机,广泛应用于机器人、 ......
万能欧几里得算法
从这篇博客学的:[link](https://www.luogu.com.cn/blog/ix-35/solution-p5170) 。 解决这样的一类问题: 有一条直线 $y=\frac{Px+B}{Q}$ ,其中 $x\in(0,L],\mid B \mid\lfloor \frac{Pa+B} ......
「学习笔记」Garsia-Wachs 算法
> 前言 本文的资料和图片均来自 $\texttt{OI-Wiki}$。 ## 引入 > 题目描述 在一个操场上摆放着一排 $N$ 堆石子。现要将石子有次序地合并成一堆。规定每次只能选相邻的 $2$ 堆石子合并成新的一堆,并将新的一堆石子数记为该次合并的得分。 试设计一个算法,计算出将 $N$ 堆石 ......
文心一言 VS 讯飞星火 VS chatgpt (41)-- 算法导论5.4 5题
# 五、在大小为n的集合中,一个k字符串构成一个k排列的概率是多少?这个问题和生日悖论有什么关系? ## 文心一言: 在大小为n的集合中,一个k字符串构成一个k排列的概率是1/k!,这是由于排列的总数是k!,而每个字符串被选中的概率是相等的,因此每个字符串构成一个排列的概率是1/k!。 这个问题和生 ......
Pasos和RAFT算法
Paxos 提出时间1990年,RAFT提出时间2013年。RAFT 是Paxos的简化版,或者说是提高投票效率,但是降低了投票公平性的妥协方案。 ### RAFT 分布式raft(Replicated And Fault Tolerant)选举算法原理 - 分成三个角色,领导者,跟随者,和候选者。 ......
图像拼接算法技术报告
本篇博客先是介绍了图像拼接的一般流程,然后给出了自己手写方法和opencv官方代码的对比,最后在探索小节通过阅读opencv的源码解释了为什么动态物体出现时我的会有鬼影,而opencv stich不会,本质上是算法的思想不同。 ......
go语言编写算法
1、冒泡排序 // 冒泡排序 a := []uint8{9, 20, 10, 23, 7, 22, 88, 102} for i := 0; i < len(a); i++ { for k := i + 1; k < (len(a) - i); k++ { if a[i] > a[k] { a[i] ......
代码随想录算法训练营第七天| 344.反转字符串 、 541. 反转字符串II、 剑指Offer 05.替换空格 、 151.翻转字符串里的单词 、 剑指Offer58-II.左旋转字符串
344.反转字符串 代码: 1 void reverseString(vector<char>& s) { 2 3 int i = 0; 4 int j = s.size() - 1; 5 while (i < j) 6 { 7 char mid = s[i]; 8 s[i] = s[j]; 9 s ......
Oracle反连接HASH JOIN ANTI NA会处理驱动表连接列null值
Oracle反连接HASH JOIN ANTI NA会处理驱动表连接列null值 这个现象和Oracle内连接HASH JOIN/半连接HASH JOIN SEMI不处理驱动表连接列null值相反。 反连接中无论一下哪个结论都一样: HASH JOIN ANTI NA HASH JOIN ANTI ......
Oracle内连接HASH JOIN/半连接HASH JOIN SEMI不处理驱动表连接列null值
Oracle内连接HASH JOIN/半连接HASH JOIN SEMI不处理驱动表连接列null值 先说内连接,比如有sql如下: select count(*) from t,tt where t.col=tt.col; 测试表t,tt的信息如下:其中t表全是null值。 15:16:18 ZK ......
redis学习六:数据类型命令及落地运用 (Hash)
K,V中V又是个KV (1)hset 设置kv, hget 获取k对应v里面对应域, hmget 可以获取多个域, hgetall把所有域对应值显示出来, hdel删除key对应某个域 (2)hlen有多少个域 hexists某个key里面是否有对应域 (3)hkeys/hvals显示对应key的所 ......
策略模式:整体替换算法
策略模式是一种行为设计模式,它允许在运行时选择算法的行为。在策略模式中,我们定义了多个算法,并将每个算法封装在一个独立的类中(__策略类__),以便在运行时根据需要进行切换。这使得算法与调用其算法的客户端代码分离,从而实现了更高的灵活性和可维护性。 主要实现方式:1 策略接口 -> n * 具体策略 ......
kmp 算法
问题描述 kmp算法解决的是字符串匹配问题,即:字符串P是否是字符串S的子串?如果是,它出现在s的哪些位置?这里我们称 S 为主串,P 为模式串。 思路 首先是暴力匹配算法(Brute-Force算法),代码如下: void BruteForce(string s, string p) { int ......
LRU 算法与 LFU 算法
算法介绍 LRU LRU 全称是 Least Recently Used,即最近最久未使用算法。 LRU 根据数据的历史访问记录来进行淘汰数据,其核心思想是“如果数据最近被访问过,那么将来被访问的几率也更高,它是页面置换算法的一种,也常用于缓存设计。 LFU LFU 全称是 Least Freque ......
快速选择算法
问题描述 给定一个长度为$n$的数组,如何在$O(n)$的时间复杂度内找到第$k$大的数。 思路 朴素的想法是先排序,然后直接找到第$k$个元素,时间复杂度为$O(n\log n)$。 我们可以利用快速排序的思想来解决这个问题,考虑快速排序的划分过程,在快速排序的“划分”结束后,数组$A_p \cd ......
字符串哈希算法
问题描述 考虑 1044. 最长重复子串 (Hard),本题思路并不难,可以使用二分答案来解决,假设答案为 mid,那么长度大于 mid 的子串在 s 中只会出现一次,否则至少出现两次。 因此只需要考虑子串在 s 中的出现次数即可,比较直接的想法是使用 key 为 string 的 unordere ......
马拉车算法
截图来自董老师https://www.bilibili.com/video/BV173411V7Ai/?spm_id_from=333.999.0.0&vd_source=23dc8e19d485a6ac47f03f6520fb15c2 P3805 【模板】manacher 算法 #include< ......
《数据结构与算法》之二叉树(补充树)
一.树结构之二叉树操作 二叉树的查找 二叉搜索树,也称二叉排序树或二叉查找树 二叉搜索树:一棵二叉树,可以为空,如果不为空,应该满足以下性质: 非空左子树的所有结点小于其根结点的键值 非空右子树的所有结点大于其根结点的键值 左右子树都是二叉搜索树 对于二叉树的查找,其实沿用的是分治法的思想,所以我们 ......