首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RS散列程序

RS散列程序
EN

Stack Overflow用户
提问于 2011-05-26 18:16:23
回答 3查看 3.9K关注 0票数 4

谁能告诉我RS字符串散列算法的工作原理或算法?我需要它,但在谷歌上找不到。请至少帮助我实现算法,我会自己实现它。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-05-26 18:22:15

你是说Robert Sedgewick的字符串散列算法吗?

代码语言:javascript
复制
uint a = 63689, uint b = 378551
foreach ( byte x ; bytes ) {
    value = value * a + x;
    a *= b;
}
return value;

(引用自http://pallas.telperion.info/d/hash/)。

票数 7
EN

Stack Overflow用户

发布于 2013-01-29 00:45:06

Python实现如下:

代码语言:javascript
复制
def RSHash(key):
    a = 63689
    b = 378551
    hash = 0
    for i in range(len(key)):
        hash = hash * a + ord(key[i])
        a = a * b
return hash
票数 0
EN

Stack Overflow用户

发布于 2014-07-17 15:25:54

C++实现如下:

代码语言:javascript
复制
unsigned int RSHash(const std::string& str)
{
   unsigned int b    = 378551;
   unsigned int a    = 63689;
   unsigned int hash = 0;

   for(std::size_t i = 0; i < str.length(); i++)
   {
      hash = hash * a + str[i];
      a    = a * b;
   }

   return hash;
}
/* End Of RS Hash Function */
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6136964

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档