hash 算法中的魔数常量-凯发app官方网站

凯发app官方网站-凯发k8官网下载客户端中心 | | 凯发app官方网站-凯发k8官网下载客户端中心
  • 博客访问: 752874
  • 博文数量: 144
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1150
  • 用 户 组: 普通用户
  • 注册时间: 2014-03-17 14:32
个人简介

小公司研发总监,既当司令也当兵!

文章分类

全部博文(144)

相关博文
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·

分类: linux

2019-08-22 17:15:30

常用的hash常量 

点击(此处)折叠或打开

  1. magic = 0x9e370001; // 2654404609

是怎么得来的呢?

在hash散列过程中,通常用基于表项的索引,乘一个适当的大数,于是结果溢出,就把保留下来的32位结果,作为模数操作的结果(hash 值)。knuth建议,要得到一个理想的结果(任意一个32位内的整数集合,hash后的hash 值比较均衡的分布,冲突概率最小),这个数就应该接近黄金分割数的一个素数。这里,2654404609就是最接近 

点击(此处)折叠或打开

  1. 2^32 * (sqrt(5) - 1) / 2
的一个素数, 这个数可以方便的通过加法和位移运算得到:

点击(此处)折叠或打开

  1. 2^31 2^29 - 2^25 2^22 - 2^19 - 2^16 1

阅读(5181) | 评论(0) | 转发(0) |
0

上一篇:dns报文解析

下一篇:ip 头部

给主人留下些什么吧!~~
")); function link(t){ var href= $(t).attr('href'); href ="?url=" encodeuricomponent(location.href); $(t).attr('href',href); //setcookie("returnouturl", location.href, 60, "/"); }
网站地图