免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4699 | 回复: 8
打印 上一主题 下一主题

[算法] 《算法导论》散列函数问题? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-09-23 14:55 |只看该作者 |倒序浏览
《算法导论》P138 散列函数一节中,
1、除法散列法:h(k) = k mod m,m不应是2的幂,原因没看懂?
2、乘法散列法:h(k) = [m(kA mod 1)],一班选择m为2的某个次幂,原因也没看懂?
请教。。。。

论坛徽章:
0
2 [报告]
发表于 2010-09-23 15:36 |只看该作者
除法散列法:h(k) = k mod m,m不应是2的幂
因为要一个素数吧!

论坛徽章:
0
3 [报告]
发表于 2010-09-23 18:18 |只看该作者
回复 1# xtlx2000


    算法导论理论部分从来不看..

论坛徽章:
0
4 [报告]
发表于 2010-09-24 13:43 |只看该作者
除法散列法:h(k) = k mod m,m不应是2的幂
因为要一个素数吧!
liexusong 发表于 2010-09-23 15:36



    9呢?

论坛徽章:
0
5 [报告]
发表于 2010-09-25 08:14 |只看该作者
除法散列法:h(k) = k mod m,m不应是2的幂
2的幂的情况下,就是你的k的p位之前必是被整除的,那么结果就只和后面的p位相关,
而非幂的情况,不会整除,所以会反映k的前面的各位情况。
乘法的情况类似吧

论坛徽章:
0
6 [报告]
发表于 2010-09-25 10:22 |只看该作者
本帖最后由 au9ustine 于 2010-09-25 10:25 编辑

个人猜想:
k mod m时,m之所以为素数时为了使得k在m所在的素数域上保持唯一性(根据欧拉定理和费马小定理)
m(kA mod 1)时,kA在1所在的域已经存在了唯一的乘法逆元,所以当被扩大m倍时,mkA性质不变

论坛徽章:
2
技术图书徽章
日期:2013-09-04 15:21:51酉鸡
日期:2013-11-01 21:20:20
7 [报告]
发表于 2010-09-25 21:13 |只看该作者
搞理论研究吗?如果仅仅是用,有很多的选择,很多教科书上的hash算法,只能称其为hash概念演示,没有任何实用价值。

论坛徽章:
0
8 [报告]
发表于 2010-09-26 10:49 |只看该作者
不在乎读的书多

论坛徽章:
0
9 [报告]
发表于 2010-09-26 11:32 |只看该作者
除法散列法:h(k) = k mod m,m不应是2的幂
2的幂的情况下,就是你的k的p位之前必是被整除的,那么结果就只 ...
wkq5325 发表于 2010-09-25 08:14



    这个好象靠点普。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP