ハッシュ関数とハッシュテーブル
ハッシュは、ハッシュ関数と呼ばれる数学関数を使用して、テキストまたは数値のリストから値を生成するプロセスです。数値の数値または英数字のキーを使用するハッシュ関数は多数あります。さまざまなハッシュ関数を以下に示します。
ハッシュ関数
以下はハッシュ関数の一部です-
除算方法
これは、ハッシュ関数を作成する最も簡単な方法です。ハッシュ関数は次のように記述できます-
h(k) = k mod n
ここで、h(k)は、キー値kをハッシュテーブルnのサイズで除算して得られるハッシュ値です。キーがより均一に分散されるようにするため、nは素数であることが最善です。
除算法の例は次のとおりです-
k=1276 n=10 h(1276) = 1276 mod 10 = 6
得られたハッシュ値は6です
分割メソッドIDの欠点は、連続するキーがハッシュテーブル内の連続するハッシュ値にマップされることです。これにより、パフォーマンスが低下します。
掛け算の方法
乗算法に使用されるハッシュ関数は-
です。h(k) = floor( n( kA mod 1 ) )
ここで、kはキーであり、Aは0から1までの任意の定数値にすることができます。kとAの両方が乗算され、それらの小数部分が分離されます。次に、これにnを掛けて、ハッシュ値を取得します。
掛け算の例は次のとおりです-
k=123 n=100 A=0.618033 h(123) = 100 (123 * 0.618033 mod 1) = 100 (76.018059 mod 1) = 100 (0.018059) = 1
得られたハッシュ値は1です
乗算法の利点は、Aの任意の値で機能できることですが、一部の値は他の値よりも優れていると考えられています。
ミッドスクエア法
ミッドスクエア法は非常に優れたハッシュ関数です。これには、キーの値を2乗してから、ハッシュ値として中央のr桁を抽出することが含まれます。 rの値は、ハッシュテーブルのサイズに応じて決定できます。
ミッドスクエア法の例は次のとおりです-
ハッシュテーブルに100個のメモリ位置があるとします。したがって、 r =2 キーをメモリ位置にマップするには2桁の数字が必要なためです。
k = 50 k*k = 2500 h(50) = 50 The hash value obtained is 50
ハッシュテーブル
ハッシュテーブルは、キーを値にマップするデータ構造です。ハッシュ関数を使用してデータキーのインデックスを計算し、キーはインデックスに保存されます。
ハッシュテーブルの例は次のとおりです-
ハッシュテーブルに格納する必要のあるキーシーケンスは-
です。35 50 11 79 76 85
使用されるハッシュ関数h(k)は次のとおりです。
h(k) = k mod 10
線形プロービングを使用して、値はハッシュテーブルに-
として格納されます
-
ExcelのMIN、Max、およびAVERAGE関数の使用方法
機能 Excelのセルの範囲で数学計算を実行します。最も一般的な機能 SUM 、平均 、カウント 、 MIN 、および MAX 。個人がデータの平均、最小、または最大を見つけたい場合は、平均を使用できます。 、 MIN 、およびMAX関数 。この投稿では、Excelで平均、最小、最大を計算する方法を紹介します。 ExcelのAVERAGE、MIN、およびMAX関数 平均 :特定のセルの数値を検索し、1つ以上の値の平均値を返します。数字を含む名前、配列、参照にすることができます。 MIN :セルの範囲で最小値を検索します。 最大 :セルの範囲で最大値を検索します。
-
ハッシュテーブルの説明
私のお気に入りのデータ構造の1つは、シンプルで強力なハッシュテーブルです。 キーと値のペアを格納する効率的な方法であるため、おそらく以前に使用したことがあります。 ハッシュテーブルの実装の背後には、研究する価値のある興味深いコンピュータサイエンスの概念がいくつかあります。これは、まさにこの記事で行うことです! バケットとハッシュ関数 ハッシュテーブルの基本的な考え方は、効率的に(O(1)で)できるようにすることです。 )キーでインデックス付けされたデータを取得します。 簡単に復習すると、Rubyでハッシュテーブルを使用すると次のようになります。 prices = { apple: