トップ > スマホ・デジタル

UUIDの衝突確率の計算

更新:2026年9月

UUIDのバージョンと生成する個数を入れると、誕生日問題の近似式で、同じUUIDが生成される確率を計算します。バージョンごとのランダムな部分のビット数の違いもふまえます。

「自分でビット数を入れる」を選んだときだけ使います
個

計算方法

UUIDの衝突確率は、同じ誕生日の人がいる確率を求める「誕生日問題」と同じ考え方で近似できます。

衝突する確率 = 1 − eの(マイナス生成個数の2乗 ÷(2 × 全体の組み合わせ数))乗

全体の組み合わせ数は、ランダムな部分のビット数をnとすると2のn乗です。UUIDv4は128ビットのうち6ビットがバージョン・バリアントの固定値なので、ランダムな部分は122ビットになります。UUIDv7は先頭48ビットが時刻なので、ランダムな部分は74ビットです。

例:ビット数32(約43億通り)で10万個生成すると、衝突する確率は約1.16パーセントです。

出典:式の定義(誕生日問題の近似式。生成個数とビット数は入力した値を使います)

PR

よくある質問

UUIDv4は絶対に重複しない?

確率はゼロではありません。ただしUUIDv4は122ビットのランダム性があるため、通常の用途で生成する個数(数百万から数十億程度)では、衝突する確率は天文学的に小さい値になります。

UUIDv1やULIDは計算できる?

UUIDv1はMACアドレスや時刻を含むため、この近似式がそのまま当てはまりません。「自分でビット数を入れる」で、実際にランダムな部分のビット数を入れて概算してください。

なぜ生成個数の2乗が出てくるの?

誰か2人が同じ値になるかを考えるため、生成した個数の中からペアを選ぶ組み合わせの数(おおよそ個数の2乗を2で割った数)が効いてくるためです。

よく一緒に使われる計算

同じ分野のほかの計算