3

私は、私の本の声明の 1 つに疑問を持っています。

シンボル テーブルでのキー インデックス検索について話すと、ある時点で次のように書かれています。 k 番目のビットは、k キーがテーブルにあるかどうかの指標と見なすことができるため. たとえば、32 ビット コンピューターで 313 ワードのテーブルを使用すると、この方法を使用してすばやく指定された 4 桁の内線電話番号が既に割り当てられているかどうかを判断します。

まあ、私は単語が何であるかを知っているので、その場合、その存在テーブルは 10.016 ビットのテーブルでなければなりません。しかし、それはどういう意味ですか?4桁の電話番号という事実は、それと何の関係がありますか? では、レコードがキーに対応している場合、キーインデックス検索を使用してシンボル テーブルを実装するにはどうすればよいでしょうか。

4

2 に答える 2

2

313バイトに収まる10000ビット(各ビットは電話番号に対応)のビットテーブルを使用できます(10000/32 = 312.5〜= 313)

于 2012-05-18T20:33:07.653 に答える
2

4桁の数値(基数10、10進数)は9000、最大で4桁の数値は10000(非負)であるため、10,000ビットを超えるテーブルで、これらの数値のそれぞれに存在するかどうか(ビットであるかどうかを示す)で十分です。セットがないnかどうか?)。5桁の数字(そのうちの90,000)の場合、より大きなテーブルが必要になります。

ビットテーブルは「はい、あります」または「いいえ、ありません」のいずれかしか表示できないため、それを超える情報が必要な場合は使用できません。しかし、それがあなたが知る必要があるすべてであるならば、テーブル(配列)へのインデックスへのキーの単射マッピングはあなたにその情報へのアクセスを与え、コンパクトに保存されます。電話番号の場合、マッピングは簡単です。

于 2012-05-18T20:33:24.530 に答える