非衝突のハッシュアルゴリズムの文字列を文字列で、半角255文字以内
解決
見 こちらの 前の繰り返しこの問題の答えとして).
他のヒント
一つの技術の利用であれハッシュアルゴリズム(言うのは、MD5やSHA-1)使用最初の32ビットの結果です。
このリスクのハッシュの衝突が増加速します。のための情報を、下記を参照して下さい。 誕生日パラドックス.
Ronny Pfannschmidtった試験と共通英語の語っていないたず衝突の10000言葉で試験されたPython文字列のハッシュ機能です。まだ試験を実施しないが、このアルゴリズムは非常に単純な、そうに最適化した共通の言葉です。
この実装:
static long
string_hash(PyStringObject *a)
{
register Py_ssize_t len;
register unsigned char *p;
register long x;
if (a->ob_shash != -1)
return a->ob_shash;
len = Py_SIZE(a);
p = (unsigned char *) a->ob_sval;
x = *p << 7;
while (--len >= 0)
x = (1000003*x) ^ *p++;
x ^= Py_SIZE(a);
if (x == -1)
x = -2;
a->ob_shash = x;
return x;
}
H(key)=[GetHash(key)+1+(((GetHash(キー) >> 5) + 1) % (hashsize–1))]%hashsize
Javaの文字列になります。ハッシュ()で簡単に閲覧 こちらの, そのアルゴリズム
s[0]*31^(n-1) + s[1]*31^(n-2) + ... + s[n-1]
所属していません StackOverflow