- 締切済み
ハッシュ法(coalesced hashing)ってなんでしょうか?
ハッシュ法について勉強していたのですが、 『coalesced hashing』 が理解できませんでした。 どなたか、分かりやすく教えてください(>_<) また、ハッシュの衝突に関する良いHPがあったら、 教えてください。 よろしくお願いします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- sakusaker7
- ベストアンサー率62% (800/1280)
関連するQ&A
- オープンハッシュ法とチェイン法の違いについて
今、ハッシュ法を勉強しています。 オープンハッシュ法とチェイン法の違い、それぞれのメリット・デメリットをを教えてくれると嬉しいです。 よろしくおねがいします。
- 締切済み
- C・C++・C#
- ハッシュ法(オープンアドレス)線形探査法と再ハッシュ法
1から10000までの数字がランダム(重複なし)にはいっているファイルから任意に10個の数字を選びハッシュ法(オープンアドレス)の線形探査法と再ハッシュ法を使って探すプログラムを作りたいのですがまったく手がでません。さらに探査回数と実行時間も出力しなければなりませんが、こちらはなんとかできます。ハッシュ法というのが初めてで困っています。どなたか教えてください。お願いします。 ちなみにファイル名は次のようにmain関数中に絶対パスで記述します。 char infile[20] = "/integer.dat"; int in[10]={20,168739,701,52774,44476,185,994737,124623,645300,999901};
- 締切済み
- C・C++・C#
- ハッシュ法
ハッシュ法で作ったデータ構造をファイルに書き込む、またファイルからの読み込みを行うにはどうしたら良いのでしょうか?? 連結リストの場合、ファイルを開いてから下のようにすれば書き込める事が分かったので、下の操作をハッシュテーブルの大きさ分だけ繰り返せば良いのかな、と思ったのですができません(> <) for(pos = g_syain_head; pos != NULL; pos = pos->next) { offset = sizeof(Syain) * i; fseek(fp, offset, 0); fwrite(pos, sizeof(Syain), 1, fp); i++; } 誰か分かる方お願いします!!
- ベストアンサー
- C・C++・C#
- ハッシュについて教えて下さい
現在出来るだけ高速に大量の英単語の登録(検索)を行いたいと考えています。 現在は受け付ける文字の種類を進数にして桁上げして、クローズドで(最初にがっぽり配列を用意してその中のどこかに入れる形式で)計算しています。 例えば0~9の文字のみ受け付ける仕様だとすると、文字の種類は10種類なので、「192」という文字列なら、 1*10^2 + 9*10^1 + 2*10^0 = 192番地に登録 といった感じです。今回大小アルファベットを含むので10→62で計算しています。 しかしこの方法では、62進数が膨大な数になるため、配列に上限があることから、完全なユニークな数値が生成出来ません。 ある程度ハッシュ値がぶつかってしまいます。 完全にユニークな数値は無理でしょうが、出来るだけ衝突は避けたいと考えています。 そこで、もっと効率よいハッシュ値を求めるMurMurHash 2.0というアルゴリズムを聞いたのですが、HPを見ても何が何だかよくわかりません; HPにてMurmurHash2.cppが公開されているので、もしご存知の方がいらっしゃればそのアルゴリズムを教えていただけないでしょうか。 http://www.google.co.jp/search?hl=ja&rlz=1C1GGLS_jaJP302JP303&q=MurMurHash+2.0&btnG また、高速な文字列登録(検索)を行う為の方法があれば教えて下さい。 よろしくお願いいたします。
- 締切済み
- C・C++・C#
- 誰かc言語でのハッシュの作り方教えてください
c言語でハッシュのモジュールをつくらねければならないんですが、そもそもハッシュというものがサイトを見てもうまく理解できないんです。誰か、理解しやすく教えてくれませんか?
- 締切済み
- C・C++・C#
- ハッシュ(メッセージダイジェスト)について
よろしくお願いいたします。 現在セキュリティの勉強をしております。 で、ハッシュについて確認したく投稿いたしました。 自分なりに勉強をして、 送信者がデータをハッシュ関数を使用してメッセージダイジェストを 作成し、受けても同じ事を行うのはわかりました。 つまり、 [データ]+[メッセージダイジェスト(データに添付する)]+[デジタル署名(データに添付する)] の3点をまとめて暗号化し、 受け取った相手が秘密鍵で [データ]+[メッセージダイジェスト]+[デジタル署名]に複合し 自分でもハッシュ関数を使用してメッセージダイジェストを作成し 送り手のダイジェストと比較すると理解しましたが 正しいのでしょうか? また、同じハッシュ関数で自分でも作成するみたいですが どこにハッシュ関数の情報が載っているのですか? いまいち自信が持てませんのでアドバイスお願いいたします。
- ベストアンサー
- ネットワーク
- ハッシュ(オープンアドレス法) C言語の課題
努力はしてみたのですが、C言語の課題ができません。教えていただけないでしょうか。 問:名前と年齢を入力し、名前をキーとしてハッシュ(オープンアドレス法)に登録する。'-'が入力されると登録を終了し、次に入力された名前をハッシュ法で検索し、あればその人のデータをハッシュから削除する、その後、ハッシュ表の内容を出力するプログラムを作成せよ。ただしハッシュ表の大きさは5とする。 例 koizumi 入力 1 入力 fukuda 入力 2 入力 aso 入力 3 入力 - 入力 koizumi 入力 fukuda(2) 出力 aso(3) 出力 ハッシュ関数は int hash(char *name) { int ret=0; while (*name)ret += *name++; return ret%5; } 再ハッシュ関数は int rehash(int h) { return (h+1)%5; } を使おうと考えています。 内容を理解できないと困るので簡単なプログラムをお願いします。 よろしくお願いします。
- ベストアンサー
- C・C++・C#
補足
迅速なレスポンス、ありがとうございます。 英語の参考書でハッシュについて勉強していたのですが・・・ 日本語訳語は・・・存在しているか分からないですか・・・ もう少しレスを待ってみます +もう少し、がんばって解読してみます・・・