-4

オープン アドレッシングとダブル ハッシュを使用して、いくつかの単語をハッシュ テーブルに格納したい

問題は、ホーナーの規則を使用して計算された基数 128 基数システムを使用して単語のキーを取得するように求められたことですが、Java で基数 128 基数システムを実装する方法がわかりません。誰でも私を助けることができますか?

4

1 に答える 1

1

いくつかの指針:

  • ホーナーの法則は多項式評価戦略です。ウィキペディアを参照
  • base-128 を使用するアイデアは、文字 (おそらくコア ASCII 文字セットから) を数値としてエンコードすることです。ウィキペディアをもう一度見てください。

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ます。

これはチェックサムの非常に単純な実装です(暗号的に安全とはほど遠いです)

于 2013-10-16T23:56:58.300 に答える