uuid - 生成包含所有数字的 v4 UUID 的机会是什么?
问题描述
生成 v4 UUID 时,UUID 全为数字且不包含字母的可能性有多大?我在野外只见过少数这样的,所以想知道。
解决方案
我假设它是变体 1 UUID,因为变体 2 UUID 永远不会是全数字(第 17 个十六进制数字只能是c
or d
)。
对于变体 1,版本 4,第 13 个十六进制数字将始终是4
(这很好),第 17 个将是8
, 9
, a
, 或b
等概率(1/2 的机会是数字),其余 30 个十六进制数字是完全随机,这使每个人都有 10/16 或 5/8 的机会成为数字。
因为我们需要一切都是数字的,所以概率简单地相乘:1/2 * (5/8)^30。为了获得“N 中的 1”赔率,我们可以反转该分数:2 * (8/5)^30 ≅ 2,658,456。所以不是天文数字罕见,但比百万分之一更罕见。
推荐阅读
- angular - Angular 构建期间的紧凑型 graphQL 查询字符串
- wordpress - %{HTTP:Authorization} 导致基本令牌格式错误
- java - 使用 java 8 流过滤列表中的对象
- git - git按规则忽略指定类型的文件更改
- python - 在 Pygame 中从屏幕右侧发送障碍物
- oracle - 在 Oracle 中转换时区格式
- vba - 如何使用 vba 从 Object 获取元素 ID
- intellij-idea - 如何在 Intellij Platform SDK 中枚举编辑器及其位置?
- javascript - Blazor WASM 在不使用 JavaScript 的情况下处理 dom 元素
- c# - 在 C# 中针对浮点数验证整数值