基础 2.余数 hash

2018-12-15  本文已影响0人  胖达_4b7e

https://time.geekbang.org/column/article/72163
同余定理:可以用余数分类

hash/散列: 就是把任意长度的输入. 转成定长的数据, 就是和上面一样 , 把无效的数据分类, 而且这个过程是大映射到小 是不可逆的

例子

要快速读写 100 万条数据记录,
最理想的情况当然是开辟一个连续的空间存放这些数据,
但是并没有能够容纳 100 万条记录的连续地址空间
需要用100 个较小的连续空间,这些空间彼此之间是被分隔开来的,
内部足以容纳 1 万条记录连续存放,

剩下的, 就是要设计一个散列函数, 把100w映射到100

最直接想到的就是 求余


原来 取余
1 1
101 1

可以加一个随机数, 更加随机


这个随机数MAX 要记录下来

原来 随机数MAX hash值
1 590199 0
101 627901 2

这样加随机数,更适合需要将数据重新洗牌的应用场景,比如加密算法、MapReduce 中的数据分发、记录的高速查询和定位
最大公约数,模幂运算(DES、AES、RSA),凯撒密码,孙子定理,都是以模运算为基础的。

上一篇下一篇

猜你喜欢

热点阅读