使用されるハッシュ関数とは? わかりやすく解説

Weblio 辞書 > 辞書・百科事典 > ウィキペディア小見出し辞書 > 使用されるハッシュ関数の意味・解説 

使用されるハッシュ関数

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2018/04/10 17:28 UTC 版)

ラビン-カープ文字列検索アルゴリズム」の記事における「使用されるハッシュ関数」の解説

ラビン-カープ法の性能の鍵となるのは、テキストサブ文字列逐次的ハッシュ値計算効率化にある。一般的な効率のよいローリングハッシュ関数は、大きな素数基数として文字列数値化するものである例え基数101サブ文字列を "hi" とした場合ハッシュ値104 × 1011 + 105 × 1010 = 10609 となる(ASCIIコードで 'h' は 104、'i' は 105)。 技術的に数字例え0-9未満基数を使うこともできるので、このアルゴリズムは非十進記数法での数を求めているだけとも言えるより詳細議論ハッシュ関数参照されたい。そのような表現利点は、次のサブ文字列ハッシュ値求めるのに文字列長に依存しない固定操作回数で済む点である。 例えば、テキストとして "abracadabra" があり、3文字パターン検索する場合、"bra" のハッシュ値は "abr"(ひとつ前のサブ文字列)のハッシュ値から先頭文字 'a' の値 97 × 1012減算し('a' の ASCII コード97で、基数として 101使用)、基数をかけてから "bra" の最後文字 'a' の値 97 × 1010 = 97加算するサブ文字列長ければ長いほど、このハッシュ法は他のハッシュ法よりも効果発揮する理論的には他にも再計算容易なアルゴリズムがある。例えば、各文字ASCII コード全てかけ合わせるその場合、次のサブ文字列計算をするには先頭文字コード割ってから最後文字かければよい。しかし、整数データ型サイズ制限されているため、ハッシュ値その範囲収めるために合同式を使わなければならない例え単純に ASCII コード加算するなどの方式では、ハッシュ衝突頻発しアルゴリズム低速になる。以上から、上述ハッシュ関数ラビン-カープに最も適している。

※この「使用されるハッシュ関数」の解説は、「ラビン-カープ文字列検索アルゴリズム」の解説の一部です。
「使用されるハッシュ関数」を含む「ラビン-カープ文字列検索アルゴリズム」の記事については、「ラビン-カープ文字列検索アルゴリズム」の概要を参照ください。

ウィキペディア小見出し辞書の「使用されるハッシュ関数」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「使用されるハッシュ関数」の関連用語

使用されるハッシュ関数のお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



使用されるハッシュ関数のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
Text is available under GNU Free Documentation License (GFDL).
Weblio辞書に掲載されている「ウィキペディア小見出し辞書」の記事は、Wikipediaのラビン-カープ文字列検索アルゴリズム (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。

©2025 GRAS Group, Inc.RSS