Программа хеширования RS - PullRequest
4 голосов
/ 26 мая 2011

Может кто-нибудь сказать мне принцип работы или алгоритм алгоритма хеширования строки RS?Мне это нужно, но не могу найти в Google.Пожалуйста, помогите мне, по крайней мере, с алгоритмом, я бы реализовал его самостоятельно.

Ответы [ 3 ]

7 голосов
/ 26 мая 2011

Вы имеете в виду Роберт Седжвик алгоритм хеширования строк?

uint a = 63689, uint b = 378551
foreach ( byte x ; bytes ) {
    value = value * a + x;
    a *= b;
}
return value;

(цитата из http://pallas.telperion.info/d/hash/).

0 голосов
/ 17 июля 2014

C ++ Реализация выглядит следующим образом:

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 голосов
/ 28 января 2013

Реализация Python выглядит следующим образом:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...