社区
数据结构与算法
帖子详情
大家讨论一下这样一个hash的实现
fish_kun
2008-08-06 05:11:56
有M个不相同的随机的整数,范围为0-N(N远大于M),如何实现这组整数的hash呢?
...全文
188
12
打赏
收藏
大家讨论一下这样一个hash的实现
有M个不相同的随机的整数,范围为0-N(N远大于M),如何实现这组整数的hash呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
lllanm
2008-08-26
打赏
举报
回复
md5啊 慢呢
lqflyc
2008-08-23
打赏
举报
回复
对于随机数据,取模是比较好的方法了,当然还有其他的哈希函数,但因为是随机的数据,不论有哪种哈希函数都不一定能达到最优。在一定的时间开销内,我们可以在(M, M+X)范围取一碰撞因子最小的数来取模,这样我们就可以对于每一组不同的数据都有最小的碰撞因子,这样子估计可以达到全局最优了。
toughman200321
2008-08-23
打赏
举报
回复
看看书了 有很多的 如 md5a
toiler
2008-08-22
打赏
举报
回复
md5
Super.Jiju
2008-08-08
打赏
举报
回复
[Quote=引用 3 楼 fish_kun 的回复:]
难道大家认为取模就不会有碰撞冲突吗?
[/Quote]
你脑袋咋想的?
取模才能将这些数均匀的放在一个规定的空间里面
加减乘除之类的你要能搞出来你也忒牛了
大王派我去巡山
2008-08-07
打赏
举报
回复
当然会有了!hash并不意味着就不会发生碰撞。
如果你一定要不冲突,那还hash干什么?直接用N大小的数组好了。
fish_kun
2008-08-07
打赏
举报
回复
难道大家认为取模就不会有碰撞冲突吗?
大王派我去巡山
2008-08-07
打赏
举报
回复
理论来说只要hash之后的空间小于N,都有可能发生冲突。
一味追求最小冲突并没有什么意义,象原来N大小的数组一定不会冲突,你为什么不用?还是嫌它太耗空间了。
反过来,mod (N-1) 冲突最小,最多只会发生一次碰撞,但这和hash之前有什么区别?
权衡空间开销和碰撞次数两样指标,只要二者都在能接收的范围之内就可以了。如果你觉得mod M还不够的话,还可以对更大的数取模,这样碰撞可能性会更小一些。
勇敢的天牛
2008-08-07
打赏
举报
回复
数字是随机的取模就比较好了,如果你的数据有规律可以有针对性的使用其他办法
fish_kun
2008-08-07
打赏
举报
回复
有没有比取模更好的方法,使得冲突最小?
Super.Jiju
2008-08-06
打赏
举报
回复
[Quote=引用楼主 fish_kun 的帖子:]
有M个不相同的随机的整数,范围为0-N(N远大于M),如何实现这组整数的hash呢?
[/Quote]
总共才M个随机的整数,最多mod M了,如果M不大的话,就可以了;
如果M也很大的话,考虑找一个大约M/x左右的一个质数了;x是你认可范围内的碰撞
大王派我去巡山
2008-08-06
打赏
举报
回复
一般会采取 mod M 的做法
Java高级课程系列之(
Hash
算法)
本次课程会带着大家学习
Hash
算法,从源码的角度去学习算法,更加容易理解的方式去学习,能够更高效的吸收学到的内容,也能培养出能够独自看源码,分析源码的能力。
Hash
,一般翻译做“散列”,也有直接音译为“哈希...
Geo
Hash
算法原理及
实现
方式
首先,Geo
Hash
用
一个
字符串表示经度和纬度两个坐标。某些情况下无法在两列上同时应用索引(例如MySQL 4之前的版本,Google App Engine的数据层等),利用Geo
Hash
。只需要在一列上应用索引即可。 其次,Geo
Hash
表示...
数组和vector类型编写
hash
函数
C++标准库头文件<functional>中提供了对int、double、string等类型的
hash
支持,但是使用unordered_map和unordered_set...
hash
_combine的实际
实现
参照如下,按照这个模板自定义线性表类
hash
函数,性能比较好。 st
hash
算法原理详解
hash
算法原理详解1、什么是
Hash
2、
Hash
的特点3、
Hash
碰撞的解决方案3.1 链地址法3.2 开放地址法3.3 两种方案的demo示例4、
hash
算法在日常活动中的应用4.1 信息加密4.2 数据校验4.3 负载均衡5、几种
hash
算法的扩展...
整数的
Hash
函数
一、整数的
Hash
函数 常用的方法有三种:直接取余法、乘积取整法、平方取中法。下面我们对这三种方法分别进行讨论。以下假定我们的关键字是,
Hash
表的容量是,
Hash
函数为 。 1.直接取余法 我们用关键字 除以 ...
数据结构与算法
33,008
社区成员
35,326
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章