ハッシュ文字列エントリ(転載)

取得文字列のハッシュ: https://blog.csdn.net/pengwill97/article/details/80879387

単一のハッシュ式:H A S H = H A S H [ R&LT ] - H A S H [ L - 1 ] * P R&LT - Lの+ 1 M O D + M O D M O D

文字列のハッシュ式を祈ります:

S | | = N | S | = N、ハッシュ[i]は、1≤i≤nhash[i]は、1≤i≤nの列、サブストリングsl..srのハッシュ値は、1には知られている場合≤l≤r≤nsl..sr、1≤l≤r≤n対応するハッシュ値:

ハッシュ=ハッシュ[R] -ハッシュ[L-1] * PR-L + 1つの
ハッシュ=ハッシュ[R] -ハッシュ[L-1] * PR-L + 1

ハッシュを考慮して各モジュロPP用の[I]ハッシュ[i]は、以下の式をさらに:

=ハッシュ(ハッシュ[R&LT] -hash [-L 1] + L-PR * 1)%MOD
ハッシュ=(ハッシュ[R&LT] -hash [-L 1] + L-PR * 1)MODは%
式と思われます以下のようにヒトおよび動物に無害サブが、モジュロ演算のために慎重に実際になるように、括弧減算に留意すべきである、すなわち、負があるかもしれないので、補正があります。

ハッシュ=((ハッシュ[R] [L-1] -hash * PR-L + 1)%MOD + MOD)%MOD
ハッシュ=((ハッシュ[R] [L-1] -hash * PR-L + 1 )%MOD + MOD)%MOD

したがって、ハッシュ値列Qiuzi式を得ました。

必要性が繰り返し部分文字列のハッシュ値、前処理のより多くの電力NN ppの効果を解決する場合は、以下のことを言及する価値があります。

 

二重ハッシュ式:
HASH1 [I] =(HASH1 [I-1])* P + IDX(S [I])%MOD1のHASH1 [I] =(HASH1 [I-1])* P + IDX(S [I ])%MOD1
HASH2 [I] =(HASH2 [I-1])* P + IDX(S [I])%MOD2 HASH2 [I]は=(HASH2 [I-1])* P + IDX(S [I ])%MOD2
ハッシュ結果が<HASH1 [n]は、HASH2 [
N]> <HASH1 [n]は、HASH2 [N]> このハッシュセーフ。

 

おすすめ

転載: www.cnblogs.com/Msmw/p/11367714.html