13

重複の可能性:
GUID は 100% の確率で一意ですか?

Guid に関するすべての投稿を読んだ後でも、1 つの簡単なことがわかりません。

異なるマシンで生成されたガイドも独自性を維持するかどうか。

単一のマシンでの GUID の一意性については読みましたが、異なるマシンでの一意性についてはまだわかりません

4

3 に答える 3

16

一般に、新しいランダム GUID は常に一意であることが認められています。確率論的にはこれは正しくありませんが、だまされる可能性は非常に小さいため、気にする必要はありません。

2 つの同一の GUID を生成する確率は、5,316,911,983,139,663,491,615,228,241,121,400,000 分の 1 です。

したがって、100 万台のコンピューターで 100 万個の GUID を生成する場合、重複を生成する確率は、5,316,911,983,139,663,491,615,228 分の 1

10 億台のコンピューターで 10 億個の GUID を使用すると、だまされる確率は 5,316,911,983,139,663,491 分の 1 (5.3 京) です。

数字はそれ自体を物語っています。だまされることはありません。

これらの数値をどこで取得したのか疑問に思われている方のために説明すると、GUID の値の部分は 122 ビットです。2^122 は 5.3169119831396634916152282411214 x 10^36 です

さらにクレイジーな数字が...
1 秒あたり 100 万の GUID を生成する場合、確率的に重複を保証するには 168,486,464,147,580,370,470,736 年かかります。

@viggity は、一部の guid では 1 つの MAC アドレスに 48 ビットが使用されていると述べましたが、その数は依然として驚異的であるため、これらのビットを失う余裕があります。上記の 1 秒あたり 200 万の GUID の例 (同じコンピューター上) を例にとると、だまされることを保証するのに 598,584,166 年かかります。それは6億年です。それは地球上に生命が存在したよりも長い。あるいは、あなたが若い地球創造論者なら、それは少なくとも地球の寿命の 6 万倍です。

于 2012-12-28T18:48:11.717 に答える
5

GUID は「実質的に」普遍的に一意です。

GUID は 128 ビットの整数 (16 バイト) であり、一意の識別子が必要なすべてのコンピューターとネットワークで使用できます。このような識別子は、重複する可能性が非常に低くなります。

MSDNから

于 2012-12-28T18:49:11.540 に答える
2

IPV4 アドレス空間 (32 ビット) を郵便切手のサイズとして視覚化すると、IPV6 (128 ビット) は太陽系のサイズになるとどこかで聞いたことを覚えています。だまされた人を生成することは起こりません。

また、ほとんどの Guid 生成アルゴリズムは、コンピューターの NIC MAC アドレスを GUID (48 ビット) 内に埋め込むため、2 つの異なるマシンよりも同じマシンを複製する可能性が高くなります。MAC アドレスを埋め込まず、純粋にランダムなアルゴリズムもありますが。参照: http://guid.us/

編集: 地球の体積はおよそ 10^27 立方センチメートルです。つまり、地球全体の 1 立方センチメートルごとに 340,000,000,000 個の GUID を持つことができます。この数は驚くほど大きいです。

あるいは、地球の表面のすべての正方形の NANOmeter は、それ自体に約 650,000 のガイドを持つことができます。

于 2012-12-28T18:57:31.120 に答える