CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C++ 语言

哈希算法问题

楼主afeu007(梦里开宝马)2006-03-17 21:31:13 在 C/C++ / C++ 语言 提问

原形       int     hash(const   string   &);  
   
  其中   sting是中文字符串,我的做法只是:  
  for(i=0;i<=str.size();i++)  
      hashcode+=str[i];  
   
  但冲突的概率太高了,  
   
  有高手可以写一个冲突率较小哈希函数吗? 问题点数:100、回复次数:8Top

1 楼fiftymetre(50米深蓝)回复于 2006-03-17 22:32:39 得分 30

一味的追求低冲突率也不好。理论上,是可以设计出一个几乎完美,几乎没有冲突的函数的。然而,这样做显然不值得,因为这样的函数设计很浪费时间而且编码一定很复杂,与其花费这么大的精力去设计函数,还不如用一个虽然冲突多一些但是编码简单的函数。因此,函数还需要易于编码,即易于实现。  
   
   
  http://www.it-ceo.net/Docs/TEC_DOC/093328169.htm  
   
  Top

2 楼ericqxg007(还有很多东西要学(卡卡一米阳光))回复于 2006-03-17 23:13:10 得分 5

 
  有高手可以写一个冲突率较小哈希函数吗?  
  自己可以考虑一下得到哈希值的规则呀~Top

3 楼ywchen2000(灌水大帝:努力奋斗)回复于 2006-03-17 23:38:06 得分 5

elf函数Top

4 楼ywchen2000(灌水大帝:努力奋斗)回复于 2006-03-17 23:39:07 得分 10

没有人会这样用的。。。Top

5 楼ywchen2000(灌水大帝:努力奋斗)回复于 2006-03-17 23:44:13 得分 15

const   int   M=10;  
  int   elfhash(char*   key)  
  {  
      unsigned   long   h=0;  
      while(*key){  
                  h=(h<<4)+*key++;  
                  unsigned   long   g=h&0xF0000000L;  
                  if(g)h^=g>>24;  
                    h&=~g;  
  }  
  return   h%M  
  }Top

6 楼defyer007(深入浅出)回复于 2006-03-18 00:13:51 得分 10

用单值的数学函数Top

7 楼ugg(逸学堂(exuetang.net))回复于 2006-03-18 10:28:24 得分 10

一味的追求低冲突率也不好。理论上,是可以设计出一个几乎完美,几乎没有冲突的函数的。然而,这样做显然不值得,因为这样的函数设计很浪费时间而且编码一定很复杂,与其花费这么大的精力去设计函数,还不如用一个虽然冲突多一些但是编码简单的函数。因此,函数还需要易于编码,即易于实现  
   
  支持。Top

8 楼jixingzhong(瞌睡虫·星辰)回复于 2006-03-18 12:13:08 得分 15

但冲突的概率太高了  
  ----------  
  楼主应当考查一下处理的串的相关信息   ...  
   
  冲突是必然的   ,  
  但是太多了,  
  似乎有点   ....不太好   ,^_^Top

相关问题

  • stl中的哈希算法?
  • 求教哈希算法
  • 哈希算法(急!在线等)
  • 梭哈算法
  • 在线恭候能详细解释哈希算法的老大。
  • 请推荐一个好的哈希算法的库
  • 求助:哈希表的KEY值生成算法
  • 哈希算法?有人能给我一份详细的资料吗?
  • 急问stl中有哈希算法的函数吗?就是数据加密的
  • 图象处理:球面化算法(俗称哈哈镜算法)

关键词

  • 函数
  • 编码
  • 冲突
  • 设计

得分解答快速导航

  • 帖主:afeu007
  • fiftymetre
  • ericqxg007
  • ywchen2000
  • ywchen2000
  • ywchen2000
  • defyer007
  • ugg
  • jixingzhong

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo