欢迎您访问广东某某机械环保科有限公司网站,公司主营某某机械、某某设备、某某模具等产品!
全国咨询热线: 400-123-4567

新闻资讯

哈希游戏| 哈希游戏平台| 哈希游戏APP

HAXIYOUXI-HAXIYOUXIPINGTAI-HAXIYOUXIAPP

2-1-哈希游戏- 哈希游戏平台- 官方网站常见的函数pdf

作者:小编2025-02-07 19:15:03

  哈希游戏- 哈希游戏平台- 哈希游戏官方网站

2-1-哈希游戏- 哈希游戏平台- 哈希游戏官方网站常见的哈希函数pdf

  常见的哈希函数 哈希函数 一般来说,一个好的哈希函数应满足下列两个条件: (1)计算简单 (2)冲突少 3 哈希函数 常见的哈希函数构造方法有: • 直接哈希函数 •数字分析法 • 平方取中法 • 折叠法 • 除留余数法 • 随机数法 4 解放后每年出生人数的统计: 哈希地址 01 02 03 …… 22 …… 出生年份 1949 1950 1951 …… 1970 …… 出生人数 ×××× ×××× ×××× …… ×××× …… H (key)=key + (-1948) 5 直接哈希函数: • 取关键字本身或关键字的某个线性函数值作为哈希地址, • 即:H (key)=key • 或 H (key)=a* key+b (a ,b为常数)。 解放后每年出生人数的统计: 哈希地址 01 02 03 …… 22 …… 出生年份 1949 1950 1951 …… 1970 …… 出生人数 ×××× ×××× ×××× …… ×××× …… H (key)=key + (-1948) n=80,d=8,r=10,s=2 1,2,3,8位分布不均匀,不能取。可取第 4、6两位组成的2位十进制数作为每个数据的 哈希地址,则图中列出的关键字的哈希地址 分别为: 45 ,72 ,84 ,03 ,28,39,51,65,13 7 2. 数字分析法 •设n个d位数的关键字,由r个不同的符号组成,此r个符号在关键字各 位出现的频率不一定相同,可能在某些位上均匀分布,即每个符号出现的 次数都接近于n/r次,而在另一些位上分布不均匀。则选择其中分布均 匀的s位作为哈希地址,即H (key)=“key中数字均匀分布的s位” n=80,d=8,r=10,s=2 1,2,3,8位分布不均匀,不能取。可取 第4、6两位组成的2位十进制数作为每个数 据的哈希地址,则图中列出的关键字的哈希 地址分别为: 45 ,72 ,84 ,03 ,28,39,51,65,13 8 题目:请为BASIC源程序中的标识符建立一个哈希表。假设BASIC 语言中允许的标识符为一个字母,或一个字母加一个汉字。取标识 符在计算机中的八进制数为它的关键字。 2 17 9 数据 关键字 (关键字) 哈希地址(2 ~2 ) A 0100 0010000 010 解:标识符数量为 I 1100 1210000 210 26+26*10=286 J 1200 1440000 440 I0 1160 1370400 370 需要的存储空间为3位8进 P 1 2061 4310541 310 制或者9位二进制。表中的 P2 2062 4314704 314 关键字没有均匀分布,采用 Q1 2161 4734741 734 平方后的中间3位均匀发布, Q2 2162 4741304 741 可以作为哈希地址 Q3 2163 4745651 745 9 3. 平方取中法 •取关键字平方后的中间几位作为哈希地址,即哈希函数为: 2 H (key)=“key 的中间几位”, 其中,所取的位数由哈希表的大小确定 2 17 9 数据 关键字 (关键字) 哈希地址(2 ~2 ) A 0100 0010000 010 I 1100 1210000 210 J 1200 1440000 440 I0 1160 1370400 370 P 1 2061 4310541 310 P2 2062 4314704 314 Q1 2161 4734741 734 Q2 2162 4741304 741 Q3 2163 4745651 745 10 平方取中法思想 以关键字的平方值的中间几位作为存储地址。求“关键字 的平方值” 的目的是“扩大差别”和“贡献均衡”。 即:关键字的各位都在平方值的中间几位有所贡献,Hash 值中应该有各位影子。 11 关键字位数特别多, 怎么办? 4. 折叠法 •关键字位数较长时,可将关键字分割成位数相等的几部分(最后一部分位数可以不 同),取这几部分的叠加和(舍去高位的进位)作为哈希地址。位数由存储地址的位数 确定。叠加时有两种方法: • 移位叠加法,即将每部分的最后一位对齐,然后相加; • 边界叠加法,即把关键字看作一纸条,从一端向另一端沿边界逐次折叠, 然后对齐相加。 d …… d d d …… d d r 2 1 r 2 1 d2r ……dr+2 dr+ 1 dr+ 1……d2r-1d2r +) d3r ……d2r+2 d2r+ 1 +) d3r ……d2r+2 d2r+ 1 S ……S S S ……S S r 2 1 r 2 1 (a) 移位叠加法 (b) 边界叠加法 此方法适合于: 关键字的数字位数特别多。 13 5.除留余数法 取关键字被某个不大于哈希表长度m的数p除后的余数作为哈希地址,即: H (key)=key MOD p(p≤m) 例 p=21 其中p的选择很重要,如果选得不好会产生很多冲突。 比如关键字都是10的倍数,