
No.3ベストアンサー
- 回答日時:
「ハッシュ関数の特性」により、文字列が何文字だろうが、ハッシュ値が何ビットだろうが「重複の可能性は0じゃない」です。
「無視できる程度」と判断して無視した場合でも「重複が起きる時は一発で起きる」と言う事を判った上で判断して下さい。
上記を踏まえた上で。
sha512のハッシュ値は512ビットです。
1000桁の半角文字列が取り得る組み合わせ数は、可読文字96文字のみに限定すると、96の1000乗、1.86e+1982個です。
1.86e+1982個の文字列を、1.34e+154個のキーで表す事になります。
つまり、キー1つに付き、1.39e+1828個の文字列が重複します。
キーの個数と、文字列が取り得る組み合わせ数から言えば「ほぼ常に重複が起きる」と言えます。
ハッシュってのは「元の文字列が長ければ長いほど、ハッシュ値のビット数が小さければ小さいほど、重複が増える」ので、元の文字列が1000文字もあったら「常に重複する」と考えましょう。
因みに、半角77文字以内なら、文字列の個数よりキーの個数の方が多いので「重複を無視しても良い」と思います。
言い換えれば「重複が無視出来るのは、元の文字列が半角で77文字以内」と言えます。
詳細な解説ありがとうございます。
ハッシュ化で文字数を減らしたかったのですが難しいことが分かりました。
みなさんご回答頂きましてどうもありがとうございました。
No.2
- 回答日時:
扱うデータが全くランダムという事はまれで、どうしてもあるタイプのデータばかりというケースは珍しくありません。
実際に実験してみないとなんとも言えません。たとえば人名なら全ての漢字がランダムに使われる訳ではありません。No.1
- 回答日時:
sha512だと、ハッシュ値は2の512乗通りあるわけですが、それがわかれば重複する確率は計算できますよね。
それを無視できるとするかどうかはご自分でご判断ください。お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセル関数の変わった使い方 3 2022/05/13 17:12
- その他(コンピューター・テクノロジー) googleスプレッドシートでカッコ内の文字数をカウントしたい 1 2023/01/17 15:52
- Excel(エクセル) capeofdragonと申します Excel2016を使っておりまして 半角又は全角の任意文字列が 2 2022/10/31 13:51
- Excel(エクセル) PowerQueryに詳しい方教えてください(Office365) 1 2022/07/24 21:11
- Excel(エクセル) Excel 文字列を結合するときに重複をなくしたい 関数・VBA 2 2022/12/12 10:40
- その他(データベース) Accessのクエリで1フィールドの抽出条件設定をNullでなく全角半角含む空白のみの文字列でない文 1 2023/04/24 15:20
- Visual Basic(VBA) VBAで、特定の文字より後を削除して残った数値を文字列に変換と特定の文字より前も削除したい 3 2022/04/15 19:21
- Excel(エクセル) Excelの文字列を数字に変換する方法について 6 2023/07/31 21:18
- Visual Basic(VBA) VBA初心者です 検索した数字の行に色をつける 5 2023/02/13 14:22
- Excel(エクセル) 【Excel】指定のセル内容を基に別シートのセルを検索して選択する【VBA】 1 2022/06/16 16:16
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルでアルファベットか数...
-
EXCELで=より左の文字を一括で...
-
VBAでの Replace関数で、ワイル...
-
16表記の文字列を数字に直した...
-
エクセルで文字列の最大値を抽...
-
エクセルでSQLでいうところの「...
-
【Excel VBA】複数ある特定の文...
-
VBA2005 16進を2桁で表示したい。
-
vbsからバッチファイル実行時の...
-
Access2000 (VBA) ' & "など...
-
Excelで3E8を3.00E+8にしない方...
-
VBの「As String * 128」とは?
-
ORCLEでの小数の表示方法の変更...
-
VB6.0のString関数に代わるVB20...
-
エクセル 数値データを桁をそ...
-
C++のdefine文の使い方の質問で...
-
テキストエディタ 検索、置き換...
-
LEFT関数で文字数を指定しない...
-
bashスクリプトでの文字列から...
-
変数に入れた文字列(定数)で書...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルでアルファベットか数...
-
EXCELで=より左の文字を一括で...
-
文字列からタブコードを取り除...
-
VBAでの Replace関数で、ワイル...
-
エクセルで文字列をtxtファイル...
-
【Excel VBA】複数ある特定の文...
-
エクセル 数値データを桁をそ...
-
Excelで3E8を3.00E+8にしない方...
-
VBA2005 16進を2桁で表示したい。
-
エクセルで文字列の最大値を抽...
-
同一セル内に関数と文字列を同...
-
Left関数とRight関数を合わせた...
-
Excelで指数表現しないようにす...
-
MS SQLServer のSQLで文字列の...
-
VBの「As String * 128」とは?
-
エクセルでセル内の文字列の最...
-
ORCLEでの小数の表示方法の変更...
-
bashスクリプトでの文字列から...
-
LEFT関数で文字数を指定しない...
-
アクセスで特定の数字以外(複...
おすすめ情報