オープン アドレッシングとダブル ハッシュを使用して、いくつかの単語をハッシュ テーブルに格納したい
問題は、ホーナーの規則を使用して計算された基数 128 基数システムを使用して単語のキーを取得するように求められたことですが、Java で基数 128 基数システムを実装する方法がわかりません。誰でも私を助けることができますか?
オープン アドレッシングとダブル ハッシュを使用して、いくつかの単語をハッシュ テーブルに格納したい
問題は、ホーナーの規則を使用して計算された基数 128 基数システムを使用して単語のキーを取得するように求められたことですが、Java で基数 128 基数システムを実装する方法がわかりません。誰でも私を助けることができますか?
いくつかの指針:
foobar
したがって、基本的に、キーが与えられた場合、関連する数値を計算し( [102, 111, 111, 98, 97, 114]
)、それらを多項式の係数と見なし( 102 + 111*X + 111*X^2 + 98*X^3 + 97*X^4 + 114*X^5
)、特定のポイントでその多項式を評価し7
ます (たとえば、 を選択します2188827
) 。 、これによりハッシュ値が得られます。
多項式を評価するとすぐに大きな値が生成されることに注意してください。一般的な解決策の 1 つは、結果のモジュラスを取得し、十分に大きなプライム モジュラスを選択することです。また、剰余算術の法則により、ホーナーのアルゴリズムのすべてのステップでモジュラスを取得できることに注意してください。39019
前の例では、プライマー番号としてを選択したと仮定すると、 が得られ3763
ます。
これはチェックサムの非常に単純な実装です(暗号的に安全とはほど遠いです)