teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

キーと値の説明を追加

2019/04/28 00:30

投稿

xebme
xebme

スコア1109

answer CHANGED
@@ -12,6 +12,7 @@
12
12
  一つの指定席に二人(以上)の人が座りたいということが起る。衝突をできるだけ回避するために出力を一様分布にしたい。
13
13
 
14
14
  **ハッシュテーブルの実装**
15
+
15
16
  衝突を考えると、配列に格納するために工夫が必要になります。
16
17
 
17
18
  - 同じハッシュ値のエントリを隣に置く
@@ -23,9 +24,20 @@
23
24
 
24
25
 
25
26
  **ハッシュ関数の実装**
27
+
26
28
  上の本にはハッシュ関数の実装について書かれていません。以下の本を読んでください。
27
29
  『世界標準MIT教科書 アルゴリズムインロダクション第3版 第1巻』近代科学社
28
30
  衝突の起きるハッシュ関数だけでなく、衝突の起きない「完全ハッシュ法」も紹介されています。
29
31
 
30
32
  **ハッシュ関数の応用**
33
+
31
- パスワード、電子署名など様々な分野で使われています。wikipediaを読んでみましょう。
34
+ パスワード、電子署名など様々な分野で使われています。wikipediaを読んでみましょう。
35
+
36
+ ### 【追記(2019-04-28)】
37
+ **キーと値**
38
+
39
+ ハッシュ値(配列の添字)が「キー」と思われているようですが間違いです。キーは「リンゴ」「ミカン」になります。英語の辞書に例えると、英単語が「キー」単語の説明が「値」に相当します。質問の例は「キー」と「値」が同じ辞書です。ハッシュテーブルを「辞書」「連想配列」「ハッシュ」と呼ぶことがあります。
40
+
41
+ **ハッシュテーブルのエントリ**
42
+
43
+ 通常は(キー、値)のペアになります。理由は、衝突リストに格納されたエントリを識別するのにキーの同値判定が必要だから。