算法 笔记18

《代码整洁之道 Clean Code》学习笔记 Part 2 - 如何写出优雅的函数

> 大师级程序员把系统当作故事来讲,而不是当作程序来写。 ### TLDR 1. 短小(不超过 20 行、缩进不超过 2 层) 2. 只做一件事 3. 保持在同一抽象层级 4. 用多态替代 switch 5. 取个好的函数名 6. 函数参数越少越好(尽量避免 3 个及以上参数) 7. 无副作用、避免 ......
函数 代码 笔记 Clean Code

笔记3- vivado 关联 noetpad++

输入路径 D:\software_install\Notepad++\notepad++.exe [file name] ,注意中括号前一个空格, file name 之间也有一个空格,还有不是反斜杠 OK,设置完成 ......
noetpad 笔记 vivado

代码随想录算法训练营第三十天| 51. N皇后 37. 解数独 总结

卡哥建议:今天这三道题都非常难,那么这么难的题,为啥一天做三道? 因为 一刷 也不求大家能把这么难的问题解决,所以 大家一刷的时候,就了解一下题目的要求,了解一下解题思路,不求能直接写出代码,先大概熟悉一下这些题,二刷的时候,随着对回溯算法的深入理解,再去解决如下三题。 大家今天的任务,其实是 对回 ......
解数 随想录 训练营 随想 皇后

代码随想录算法训练营第二十九天| 491.递增子序列 46.全排列 47.全排列 II

491.递增子序列 卡哥建议:本题和大家刚做过的 90.子集II 非常像,但又很不一样,很容易掉坑里。 https://programmercarl.com/0491.%E9%80%92%E5%A2%9E%E5%AD%90%E5%BA%8F%E5%88%97.html 视频讲解:https://ww ......
随想录 训练营 九天 序列 随想

Dubbo(六)_时间轮算法

# 时间轮算法介绍 ![](passageImg/Dubbo(六)_时间轮算法.assets/20230901215825.png) `HashedWheelTimer` 定时轮算法在 netty、dubbo 等框架中运用广泛。比如在 Dubbo 中为了增强系统的容错能力,会有相应的监听判断机制比如 ......
算法 时间 Dubbo

MD5算法原理(未完成)

# MD5简介 >MD5不是一种加密算法,而是一种哈希算法,用于生成固定长度的哈希值。哈希算法通常不涉及加密或解密,它们是单向操作,将输入数据转换为固定长度的哈希值,而无法从哈希值还原原始数据。 # MD5算法核心步骤: ## **填充数据**: 首先,将输入数据填充到长度为512位的多重数(mul ......
算法 原理 MD5 MD

笔记2:vivado 的 ILA 创建

ILA – Integrated Logic Analyzer 内部逻辑分析仪(是一种在线调试工具,用的非常多) 先例化在生成IP核,好处: (1)、可以事先明确知道要看多少个信号 (2)、信号的位宽 (3)、可以一次性的配置好在线调试工具,避免先生成IP,在例化,因失误漏了信号,反复添加,编译耗时 ......
笔记 vivado ILA

进阶搜索算法 学习笔记

# 进阶搜索算法 ### 前情提要~ 1. 双向广搜、双向深搜 2. 堆优化的 Dijkstra 3. 一颗小小的 A-STAR 4. 不大聪明的 IDDFS(IDS) 5. 可爱的 IDA-STAR # 广搜、深搜 这是进阶搜索算法,不说了直接上例题 以“[P1514](https://www.l ......
算法 笔记

【学习笔记】树套树

> 所谓树套树,其本质是通过用树维护一组树的根,从而维护强悍的数据 # 1 线段树套平衡树 线段树套 ```cpp #include using namespace std; #define MAXN 50005 int seg[MAXN>1; if(pos>1; if(pos=tl&&r>1; i ......
笔记

斜率优化DP 学习笔记

# 斜率优化 DP ## 适用情况 适用于求解最优解(最大、最小)问题。 ## 上凸壳与下凸壳 ![](https://cdn.luogu.com.cn/upload/image_hosting/8ufinou7.png) ## 求解步骤 1. 对于任意状态转义方程,设 $A_i$,$B_i$,使状 ......
斜率 笔记

密码协议学习笔记(1.5):几种常用的非对称密码体系

RSA密码体系: RSA密码体系是一种依赖于依赖于大数质因数分解的难解性的密码体系. RSA加密算法: 参与者: 私钥持有者Alice 公钥持有者Bob 运行步骤: Alice选取两个大质数$p,q$(需要使用Miller-Rabin算法判定其是否为质数),计算$n=pq$,其欧拉函数$\phi(n ......
密码 体系 常用 笔记 1.5

vivado 教程笔记 -创建工程 - 编译 - 布局布线 - 生成bit - 下板验证

1、创建工程 工程就算创建完了。 2、 创建源文件 双击打开后,就可以敲入代码 3、语法编译、布局布线、IO配置约束 输入完一个完整代码后,先对语法进行综合分析,可直接跳过RTL ANALYSIS ,直接点击SYNTHESIS(综合) 进行布局布线 布局布线完后,IO管脚配置约束 有时可能找不到IO ......
布局 笔记 教程 vivado 工程

五、调度算法

# 1、进程调度算法 也称CPU调度算法,因为进程由CPU调度。当CPU空闲时选择某个就绪状态的进程并给其分配CPU 发生CPU调度的常见情况: 1. 进程从运行状态转到等待状态 2. 进程从运行状态转到就绪状态 3. 进程从等待状态转到就绪状态 4. 进程从运行状态到终止状态 1和4两种情况下的调 ......
算法

KDT学习笔记

这次稍微水了点。 todo: - 复杂度。 - 不知道是否存在的二进制分组优化。 ### 偏序问题 一般是 CDQ,常数小;或者可持久化,拿来做区间问题;万能的树套树,就是吃空间。 然后就是 KDT,多位偏序无脑叠,空间线性,时间……玄学。 有时也有更好的方法,比如用 `std::bitset` 优 ......
笔记 KDT

代码随想录算法训练营第二十八天| 93.复原IP地址 78.子集 90.子集II

93.复原IP地址 卡哥建议:本期本来是很有难度的,不过 大家做完 分割回文串 之后,本题就容易很多了 题目链接/文章讲解:https://programmercarl.com/0093.%E5%A4%8D%E5%8E%9FIP%E5%9C%B0%E5%9D%80.html 视频讲解:https:/ ......
子集 随想录 训练营 随想 算法

*【学习笔记】(21) Prufer 序列

## Prufer 序列 Prufer 序列可以将一个带标号 $n$ 个节点的树用 $[1,n]$ 中的 $n-2$ 个整数表示,即 $n$ 个点的完全图的生成树与长度为 $n-2$ 值域为 $[1,n]$ 的数列构成的双射。 Prufer 序列可以方便的解决一类树相关的计数问题,比如凯莱定理:$n ......
序列 笔记 Prufer 21

代码随想录算法训练营第二十七天| 39. 组合总和 40.组合总和II 131.分割回文串

39. 组合总和 卡哥建议:本题是 集合里元素可以用无数次,那么和组合问题的差别 其实仅在于 startIndex上的控制 题目链接/文章讲解:https://programmercarl.com/0039.%E7%BB%84%E5%90%88%E6%80%BB%E5%92%8C.html 视频讲解 ......
总和 随想录 回文 训练营 随想

梯度下降算法入门

提到梯度下降我们知道梯度下降算法是很多机器学习算法、深度学习算法的基础。 首先我们需要明确一些概念什么是梯度: 梯度的本意是一个向量(矢量),表示某一函数在该点处的方向导数沿着该方向取得最大值,即函数在该点处沿着该方向(此梯度的方向)变化最快,变化率最大(为该梯度的模)。 梯度的数学定义可以看这里[ ......
梯度 算法

强化学习:一种新的并行算法下的参数同步更新方式——半异步更新方式——( 同步、异步 -> 半异步 )

Abstract: 并行算法下的参数同步方式一般有同步更新和异步更新两种方式,本文在此基础之上提出了一种新的参数同步方式——半异步更新方式。 Introduction: ......
方式 算法 参数 gt

排序算法性能总结(时间复杂度)

![](https://img2023.cnblogs.com/blog/1892439/202309/1892439-20230903134550482-1463950412.png) ![](https://img2023.cnblogs.com/blog/1892439/202309/1892 ......
复杂度 算法 性能 时间

C++算法之旅、05 基础篇 | 第二章 数据结构

acwing学习笔记,记录容易忘记的知识点和难题。数组实现单链表、双链表、栈、单调栈、队列、单调队列、KMP、字典树 Trie、并查集、数组实现堆、哈希表(拉链法、开放寻址法、字符串前缀哈希法)、STL常用容器 ......
数据结构 算法 之旅 结构 第二章

网络通信协议 ---转自别人的文档笔记

# 网络 ## 网络性能指标 ### 速率 比特(bit/s或bps)是计算机中最小的数据量单位。 $$ 1bit=8Byte(字节) 1KB=2^{10}B 1MB=2^{10}KB=2^{20}B 1GB=2^{10}MB=2^{20}KB=2^{30}B 1TB=2^{10}GB=2^{20} ......
网络通信 转自 文档 笔记 网络

『算法小记』SAM

# 引入 daduoli最近对自己的名字很感兴趣,于是他开始研究自己的名字。知周所众,搞清楚一个字符串的最好方法就是把他的所有子串列出来(误),所以daduoli开始尝试列举他名字中所有的子串。 列了好一会,daduoli发现子串太多了,于是尝试把它们拼在一起。拼了好一会儿,他拼出来一个奇怪的东西。 ......
小记 算法 SAM

11种常用滤波算法程序

来源:嵌入式情报局 一、限幅滤波法(程序判断滤波法) 1 /* 2 A、名称:限幅滤波法(又称程序判断滤波法) 3 B、方法: 4 根据经验判断,确定两次采样允许的最大偏差值(设为A), 5 每次检测到新值时判断: 6 如果本次值与上次值之差<=A,则本次值有效, 7 如果本次值与上次值之差>A,则 ......
算法 常用 程序

《C++并发编程实战》读书笔记(2):线程间共享数据

## 1、使用互斥量 在C++中,我们通过构造`std::mutex`的实例来创建互斥量,调用成员函数`lock()`对其加锁,调用`unlock()`解锁。但通常更推荐的做法是使用标准库提供的类模板`std::lock_guard`,它针对互斥量实现了RAII手法:在构造时给互斥量加锁,析构时解锁 ......
线程 实战 笔记 数据

代码随想录算法训练营第二十五天| 216.组合总和III 17.电话号码的字母组合

216.组合总和III 卡哥建议:如果把 组合问题理解了,本题就容易一些了。 题目链接/文章讲解:https://programmercarl.com/0216.%E7%BB%84%E5%90%88%E6%80%BB%E5%92%8CIII.html 视频讲解:https://www.bilibil ......
随想录 训练营 总和 随想 算法

celery笔记

celery介绍 1.它是什么? 分布式的异步任务框架 直译为: 芹菜 [ /ˈseləri ] 2.可以做什么? 异步任务。(异步执行函数) 延迟任务。(延迟5s任务(函数)) 定时任务。(例如:每天23点触发测试)[如果单纯执行定时任务,没必要用celery] 3.平台问题 celery is ......
笔记 celery

SATT 学习笔记

# Self-Adjusting Top Tree(SATT)学习笔记 [TOC] ## $\mathtt{1}$ 树收缩 树收缩的两个核心操作为 $\operatorname{compress}$ 和 $\operatorname{rake}$。 ### $\mathtt{1/1}$ $\oper ......
笔记 SATT

读SQL学习指南(第3版)笔记09_条件逻辑与事务

![](https://img2023.cnblogs.com/blog/3076680/202309/3076680-20230902225017399-1042005891.png) # 1. 条件逻辑 ## 1.1. SQL逻辑根据特定列或表达式转向不同的分支来处理 ## 1.2. 在程序执行 ......
学习指南 逻辑 条件 事务 笔记

IC设计时序优化 笔记

经历了做完的IC设计的笔试之后,认识到自己遗忘了很多设计方面的知识。而设计和验证的笔试题风格又完全不一样。 特此开一个系列来整理IC设计相关的知识,设计的题目需要掌握:数电基础(甚至是晶体管级的门电路和晶体管的特性),Verilog熟练程度,常见电路设计,时序优化,计算slack和相关计算。这样自己 ......
时序 笔记