Everything that kills me makes me feel alive.

Hash

Hash

(将高维信息压至低维)
(hash的压缩空间:将 \(n\) 个yuansu)

  • 正确性(无冲突)
  • 万物皆可hash

正确性

1.多项式 hash

例如 \(base=7\) :

\[h(s)=\sum\limits_{i=1}^{|s|}s_i\cdot base\% mod \]

  • 弊端: $$"ab"+"cd"="ad"+"cb"$$ (只与位数相关)
  • \(s[i]-'a'\) 错误(在不判断长度时 \(a,aa,aaa\) 全为0)
  • \(s[i]\) 错误(太大)
  • \(s[i]-'a'+1\) 最正确

2.矩阵 hash

(将字符对应一个矩阵) 例如:

\[a=\begin{vmatrix}1&1\\-1&2\end{vmatrix}\quad b=\begin{vmatrix}1&2\\3&4\end{vmatrix}\]

按顺序将矩阵乘起来。

计算:

假设每一个矩阵为$$M_i$$

\[s_i=\prod\limits_{j=1}^i M_j \]

\[inv_i=inv(s_i) \]

表示求逆

\[\begin{bmatrix}l,r\end{bmatrix}\quad\prod\limits_{j=l}^r M_j=inv_{l-1}\cdot s_r \]

  • 优势:与每一个前后的字母都相关,不具有独立性(?手动证明),用于字符集合hash
  • 适用于矩阵分配率,不满足交换率
  • 矩阵 hash 可以相加
  • \(O(1)\) 计算
    \(M_n \rightarrow M^\prime\)
  • 矩阵 & 矩阵的逆 可认为都可逆
    \(2\times2\) 矩阵的求逆

\[\begin{bmatrix}A&B\\C&D\end{bmatrix}=\begin{bmatrix}D&-C\\-B&A\end{bmatrix} \div (AD-BC) \]

一个矩阵的逆为其的?伴随矩阵除以它的行列式:

\[A^{-1}=\frac{A^{*}}{|A|} \]

  • 矩阵为随机矩阵
  • ?伯努利不等式,单位矩阵(概率),对角阵,多模hash,二阶阵,克莱姆求解
  • ?二阶阵不可逆的概率为随机取一个二维空间向量( \(a\) & \(b\) ):

\[\begin{bmatrix}A\\B\end{bmatrix}\quad\&\quad a=k\cdot b \]

\(\bmod p\) 时,概率为 \(\frac{1}{p}\) 证明:
原本空间向量 \((0,1)\&(1,0)\) ,把空间单位向量变为 \(a\)\((0,1)\) ,然后以这两个向量作为基底, 随机取这两个向量的线性组合。
只跟 \(a\) 有关,相当于 \((0,1)\) 的系数为 \(0\) ,而下面的系数对应的为 \(0\sim {p-1}\) ,所以概率为 \(\frac{1}{p}\) 。(之后的以后自己证明)

万物皆可hash

树(判同构),图等都可以

posted @ 2022-07-04 10:32  wind_seeker  阅读(38)  评论(0)    收藏  举报
Live2D