【问题标题】:Probability of + character occurrence in base64 encoded string+ 字符在 base64 编码字符串中出现的概率
【发布时间】:2017-08-25 16:24:21
【问题描述】:
我有超过 600 万条包含 base64 编码字符串值的数据库记录。
这些是随机 13 位数字的 SHA-256 输出。
当我用 SQL LIKE 查询计算时,它超过了 300 万。
我想知道是否正常。
于是我尝试计算+字符出现的概率。
你能确认这个计算吗?
(64^44 - 63^44) / 64^44
(Base64编码由64个字符组成)
Wolfram Alpha says, its 0.5
【问题讨论】:
标签:
math
base64
combinations
probability
【解决方案1】:
- 表示 SHA-256 校验和所需的 base-64 位数 =
256 / log2(64) = 42.6666... = 43
- 一个字符不是
+的概率=63/64
-
所有个字符的概率不是
+ = (63/64)^43
- 因此至少一个概率为
+ = 1 - (63/64)^43 = (64^43 - 63^43) / (64^43)
所以你的答案几乎是正确的——只是假设了错误的位数。数值在合理误差范围内仍然正确。