一、哈希表
1、key => val
2、处理key得到哈希数用来计算得到index
3、index => key;val
4、遇到哈希冲突:也就是同一个index指向多个数据
5、解决办法:扩容(哈希表的容量扩增),处理key的方式(哈希函数,哈希数),链表
二、哈希数
1、哈希函数:hash(); //函数可以自己去设置
2、获得index:index = hash(key) % capacity;
/* hash函数不同key转换的数据不同,通过结合hash(key)与capacity得到不同的index;capacity可设置为质数,用来解决当hash函数返回值呈现周期性时的问题;*/
3、列举一些特定的hash函数处理方式:
( 这里可称为哈希算法)
- 加法哈希:对输入的每个字符的 ASCII 码进行相加,将得到的总和作为哈希值。
- 乘法哈希:利用乘法的不相关性,每轮乘以一个常数,将各个字符的 ASCII 码累积到哈希值中。
- 异或哈希:将输入数据的每个元素通过异或操作累积到一个哈希值中。
- 旋转哈希:将每个字符的 ASCII 码累积到一个哈希值中,每次累积之前都会对哈希值进行旋转操作。
4、哈希数的不可逆特点:对比转码后的哈希数
应用场景
1)密码对比;
2)区块链;
三*、PID 控制
1、什么是PID
1、P比例控制:用于快速得到目标值(但会出现稳态误差,或者出现在目标值附近震荡剧烈)
2、I积分控制:用于消除误差(如稳态误差)
3、D比例控制:减少稳态震动(快达到目标值时,不再加速)
P比例:
PI比例积分:
PID:
2、PID控制的公式
1)连续 => 离散化
2)引入控制周期T(对比前后时刻到对比次的误差值)
3)T的大小看控制环节是否要快速响应(快速响应:T取较小值)
4)是否引入常数参数(是否加
)
3、PID代码实现前提
单片机代码配置:
1)电机调节启动停止及正反转;
2)设置定时器中断;
3)ADC模数转换调节;(调速)
4)通信输出数据,进行监控;


253

被折叠的 条评论
为什么被折叠?



