私たちは皆、比較ベースのモデルの要素の明確さを時間で実行できないことを知っています。ただし、ワードRAMでは、おそらくより良い結果を得ることができます。
もちろん、線形時間で計算できる完全なハッシュ関数の存在を仮定すると、要素の区別のための線形時間アルゴリズムが得られます:数字を1つずつハッシュし続け、衝突があれば1を返します。
ただし、2つの問題があります。1)使用されるランダム性を見つけることができる完全なハッシュ関数のほとんどの構成、2)どこに前処理時間、つまりどのハッシュ関数を使用するかを決定するのに必要な時間に関する議論が見つかりません数値の入力セットに基づいて使用します。
Fredmanらの「スパーステーブルの最悪の場合のアクセス時間での保存」は、最悪の場合にアクセス時間のハッシュ関数を提供することで最初の問題を解決しますが、2番目の問題については何も述べていません。
要約すると、ここに私が欲しいものがあります:
セット与えられたアルゴリズム設計のN個(各番号はある数wはワード長とワード-RAMに長いビット)wはハッシュ関数見つけ、H :S → { 1 、... 、M }内のO (N )時間ここで、m = O (n )です。関数Hは、プロパティを持つ必要があり、そのいずれかのためにJ ∈ { 1 、... 、M }の要素数にマップすることを jが一定であると計算時間(Iする)取るべきである O (1 )「合理的」という言葉-RAMモデル、すなわちの時間を、モデルがで評価される言葉に「エキゾチック」の機能を許可するべきではありません O (1 )時間。
また、ハッシュ関数をまったく使用しないword-RAMの要素の区別を解決するアルゴリズムがあるかどうかも知りたいと思います。