素数で除算してハッシュをモジュラス値に減らした後、ローリング ハッシュ アルゴリズムがどのように機能するかを理解するのに苦労しています。
数字の 5 桁のシーケンスを考えてみましょう123456
。
最初のチャンクは12345
. 値を保存すると、次のウィンドウで 6 が入って 1 が出てきます。
したがって、新しいハッシュは(12345-1*10^4)*10 + 6 = 23456
. これはかなり直感的です。
明らかなように、これらの数値は大きいため、数値を小さく保つモジュラス関数が必要です。101
この目的のために素数を取るとします。
したがって12345
、 に減少し23
ます。では、これから、次のウィンドウのローリング ハッシュをどのように導き出すの23456
でしょうか?