发布时间:2025-04-23 20:05:32 点击量:
HASH GAME - Online Skill Game GET 300
f(key) = a * key +b 举个例子,比如要统计80后出生年份的人口数,此时函数为 f(key) = key -1980 (2)数字分析法: 适用于 关键字位数比较大的情况并预先知道关键字的分布且若干位分布较均匀 关键字:抽取,从关键字中抽取一部分来计算散列存储的位置方式 比如手机号前三位是接入号,中间四位表示用户的归属地,后四位才是真正的用户号 可以对后四位进行反转(1234-4321),右环位移(1234-4123)等等方法
f(key) = key mod p (p=m) mod就是求余数的意思,这个方法不仅可以对关键字取模,也可以在进行折叠,平方取中后再取模 本方法的关键在于 选取 合适的 p,如果p选的不好就容易产生同义词 p的选取方法:如果散列表的长度为m,则 p = m(最好接近m) 的最小质数或者不包含小于20质因子的合数。 (6)随机数法 :适用于 关键字的长度不等的场景 选择一个随机数,取关键字的随机函数值作为它的散列地址即, f(key) = random(key)