[解決済み] GUIDは常に一意であると仮定しても安全ですか?
質問
衝突の可能性があることは承知していますが、たとえば 1000 個の GUID を一括して生成した場合、1 つ 1 つのテストを省くために、すべてユニークであると仮定しても安全でしょうか。
ボーナス質問
GUIDの一意性をテストする最適な方法は?ブルームフィルタでしょうか?
どのように解決するのですか?
はい、できます。 GUID は 128 ビット長なので、衝突の可能性は微小ですが、「微小」という言葉は今ひとつ強度が足りません。 次のようなものがあります。 非常に多くの GUID があります。 を生成すると 数兆 をランダムに生成しても、1 回でも衝突するよりも隕石にぶつかる可能性のほうが高いということです (以下、3rd>より)。 ウィキペディア ). また、ランダムに生成しているわけではなく など を使用している場合、MAC アドレスはコンピュータ間で一意であり、タイムスタンプは の コンピューターで一意であるためです。
1を編集します。 あなたのボーナス質問に答えるために、GUIDのセットの一意性をテストする最適な方法は、それらがすべて一意であると仮定することです。 なぜでしょうか。 なぜなら、生成するGUIDの数を考えると、GUIDの衝突の確率は、宇宙線がコンピュータのメモリ内のビットを反転させ、あなたが実行しようとするどんなquot; accurate"アルゴリズムによって与えられる答えを台無しにする確率よりも低いからです。 (参照 この StackOverflow の回答 を参照してください)。
があります。 膨大な の GUID が存在します。 Douglas Adams の言葉を引用すると 銀河ヒッチハイク・ガイド』(Hitchhiker's Guide to the Galaxy) :
<ブロッククオート宇宙は大きい。本当に大きい。あなたは、それがどれほど膨大で気の遠くなるような大きさであるか、信じないでしょう。つまり、あなたは化学者までの道のりを長いと思うかもしれませんが、それは宇宙に比べたらほんの些細なことなのです、いいですか。
とあることから 7×10程度 22 宇宙の星 であり、2個弱の 128 のGUIDがあるとすると、約4.86×10個の 15 -ほぼ 5クアドリリオン -のGUIDがあります。 もしそれらの星の1つ1つに私たちのような人口が繁栄している世界があるとしたら、それぞれの星の周りには 今まで生きてきたすべての人間や宇宙人が は、4万5千を超えるGUIDの権利を持つことになります。 宇宙のすべての星の、歴史上のすべての人のために。 GUID空間は、全宇宙の大きさと同じレベルです。 あなたは ではない は心配する必要はありません。
( 2を編集します。 反省点:うわー。 私は気づいていませんでしたが 自分 これが何を意味するのか。 GUID空間は、理解できないほど巨大です。 ちょっと畏怖の念を覚えます(笑)。
関連
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Mathematica の行列の対角化
-
[解決済み] スケールファクターまで
-
[解決済み] glm::normalizeは何をするのですか?
-
[解決済み] バイトからメガバイトへの変換
-
[解決済み] 初心者の言葉で「NaN(Not a Number)」とは何か?[クローズド]
-
[解決済み] GUIDは100%一意ですか?
-
[解決済み】GUIDが一意でないことの簡単な証明【終了しました
-
[解決済み] バックプロパゲーション・ニューラルネットワークで非線形活性化関数を使用しなければならない理由は何ですか?[クローズド]
-
[解決済み] RubyでGUIDを生成する
-
[解決済み】宇宙線:プログラムに影響を与える確率は?