整数のタプル(順序が重要)を衝突の可能性が低い整数にハッシュする必要があります。整数を文字列に変換し、「、」と連結して文字列ハッシュを取得するアプローチを使用していますが、速度が遅すぎます。
整数のタプルから高速ハッシュを取得する方法はありますか?
整数のタプル(順序が重要)を衝突の可能性が低い整数にハッシュする必要があります。整数を文字列に変換し、「、」と連結して文字列ハッシュを取得するアプローチを使用していますが、速度が遅すぎます。
整数のタプルから高速ハッシュを取得する方法はありますか?
JavaのArrays.hashCode(int [])の機能は次のとおりです。
2938 public static int hashCode(int a[]) {
2939 if (a == null)
2940 return 0;
2941
2942 int result = 1;
2943 for (int element : a)
2944 result = 31 * result + element;
2945
2946 return result;
2947 }
この計算は、リストインターフェイスで指定されます。それがあなたにとって十分な衝突耐性があるかどうかはわかりませんが、それは始めるのに良い場所のようです。順序は考慮されます(つまり、同じ番号の順序が異なると、ハッシュ値も異なります)。