を倍増誰もが彼らが何であるかを知っている山車を使用するハッシュテーブル/辞書/
など、私は辞書、ハッシュテーブルに似た他のデータ構造について、どこかで読んではなく、int型を使用して、彼らはフロート/倍精度を使用していましたか?答えて
ハッシュのキーとして浮動小数点数/倍数を使用することを意味するのは簡単です。たとえば、.NETでは、それはちょうどDictionary<double,MyValueType>
を使用しています。
あなたはハッシュを持っていることについて話している場合は、
技術的には....代わりにint型の二重をオフに基づいて、あなたはあなたの内部ハッシュとして任意の要素を持つことができます。通常、これはintまたはlongを使用して行われます。これらは高速で、ハッシュアルゴリズムは計算が簡単です。
しかし、ハッシュは実際にはちょうどBitArrayであり、何も問題なく動作します。潜在的により大きいハッシュ値のセットを許可する以外に、これをintまたはlong以外のものにすることは、あまり利点がありません(つまり、あなたのハッシュに8バイト以上のタイプに行く場合)。
良い答え。実際には、ハッシュテーブルのキーはビット配列に過ぎず、int型はこれを表現する最も便利な方法です。 – Noldorin
ええええええええええええええええええええええええええええええええん:長いほうをハッシュとして使うのは、技術的には、二重(64ビットの配列)を使うのと同じですより長い時間が必要な場合は、GUID(.NETの10進数に相当します)などの128ビットタイプに進むことができます。整数型では、浮動小数点型よりも高速です。 –
ありがとうリード。ええ、私はこれがより大きなハッシュ値のセットを持つことを考えていました。したがって、.net辞書でdoubleを使うとintsを使うでしょう、そうですか? –
あなたの質問履歴はあなたが.Netを使用していることを示しているので、その文脈で回答します。
あなたが認識して入力している辞書をしたい場合は、あなたがそのように、あなたはブラインド型である辞書をしたい場合はSystem.Collections.Generic.Dictionary<T, U>
http://msdn.microsoft.com/en-us/library/xfhwa508.aspx
を使用し、それがキーまたは値のために山車やdouble型を使用するように指定することができるようにあなたはキーと値のために浮動小数点数と2倍を使用することができますSystem.Collections.HashTable
http://msdn.microsoft.com/en-us/library/system.collections.hashtable.aspx
あなたはキーを意味しますか?それは私をトリッキーなものにします。
これらを任意のキーとして使用している場合は、整数よりも優れていません。
浮動小数点値を計算し、それをハッシュテーブルで何か見るために使用すると、非常に危険です。浮動小数点数は無限の精度を持たず、2つのわずかに異なる方法で同じものを計算すると、結果に非常に小さな差が生じることがあります。ハッシュキーは毎回まったく同じものを得ることに頼っているので、常に丸めるように注意しなければならず、まったく同じ方法で丸めなければなりません。ところで、これは聞こえるよりも厄介です。
浮動小数点ハッシュではどうしますか?
ありがとう、ちょうどより大きいハッシュ値セットの場合はmである。私が間違っていない場合、実際にそれらを使用するデータ構造を見て覚えていますが。 –
ハッシュアルゴリズムは一般に、より大きな入力から小さな出力を生成する単なる関数です。良いハッシュ関数は、入力のわずかな変化に対する出力の大きな変化と、いくつかの入力に対して可能なすべての出力値を生成するという保証のような興味深い特性を持っています。
整数値ではなく浮動小数点値を出力する単純な多項式型のハッシュ関数を記述するのは難しくありませんが、生成されたハッシュ関数が目的のプロパティを持つことを保証することは難しいです。使用される特定の浮動小数点表現。
ハッシュ関数がほとんど常に整数演算で実装されている理由の少なくとも一部は、整数計算に関するさまざまなプロパティが浮動小数点計算で同じことを行うよりも簡単であることを証明しているためです。
モジュロ(別の素数)のいくつか(いくつかの素因数の合計)は、必然的に、入力によってはすべての可能な出力を生成する必要があることを証明することはかなり簡単です。浮動小数点数の集まりを使った計算で同じことをすることは難題です。
浮動小数点値を破損することなく格納して送信することの相対的な難しさを加えてください。それは価値がありません。
- 1. スティッキーフッターは山車
- 2. Pythonの比較山車
- 3. 奇妙な方法:山車
- 4. BSTまたはスペルチェックのハッシュテーブル辞書
- 5. SSE3組み込み関数:山車
- 6. パンダ比較-山車条件が
- 7. ラウンドアップ山車最初小数点
- 8. C#でハッシュテーブルを辞書に変換する
- 9. Javaハッシュテーブルを使用するためのリソース?難しさの山。ハッシュマップを使用できません
- 10. のみ6桁で山車を印刷する方法 - ルビー
- 11. 辞書を辞書のキーとして使用する
- 12. WCFの辞書内にハッシュテーブルを送り返す
- 13. ハッシュテーブルを使用するPowerShell
- 14. VLListを使用するハッシュテーブル
- 15. この辞書またはハッシュテーブルはTypescriptにありますか?
- 16. ハッシュテーブルと辞書の違いは何ですか?
- 17. 辞書でOrderedDict辞書を使用しています
- 18. Lambdaを辞書で使用する
- 19. Python辞書を使用する
- 20. 辞書にラベルエンコーダを使用する
- 21. 辞書をClase_Initializeメソッドに使用する
- 22. DataGridViewで辞書を使用する
- 23. 辞書とハッシュテーブルの空間の複雑さ
- 24. スレッド安全性に関して辞書とハッシュテーブルの相違点
- 25. 文字列や山車を持つファイルや
- 26. 文字列キーと大文字小文字を区別しないハッシュテーブル/辞書を使用しています。
- 27. 3リストを使用して辞書の辞書を作成するには?
- 28. forループを使用して辞書から辞書を削除する
- 29. 辞書のTask.WhenAnyの使用
- 30. 辞書の理解を使って辞書をフィルタリングする
.Netでは、この質問は無効です。あなたの言語/ devtoolsを指定すると、あなたのためにそこに答えがあるかもしれません。 –
@David B:これは理論的なアルゴリズムの質問だと思います。「整数以外のものをハッシュ構造として使用できますか?」 –
これは一般的なプログラミングの質問です。 –