
假设有这么个场景:
给每个进入房间的人分配一个随机码(数字/字母),该随机码在一段时间内有效,那么在有效期内,为了让两个人分配同一个随机码的概率保持在指定值以下,那么随机码的长度最短需要多少个字符?
我是这么计算的:
设:
并发数:P(如:100个/s)
缓存时间:T(如:1800s)
碰撞率:R(如:1‰)
容量:C
则:
C = P * T / R
以上面的测试用例代入计算:
C = 100 * 1800 * 1000 = 180000000(1.8亿)
也就是说这个随机码字符串的总可能数要大于1.8亿个,那么需要多少位就好算了
数字有10种可能;字母有26种可能;数字&字母有36种可能
可直接参照下表(大概值):
| 长度 | 数字 | 字母 | 数字&字母 | 数字&字母(含大小写) |
|---|---|---|---|---|
| 4 | 1万 |

本文探讨了在设定并发数(P)、有效缓存时间(T)和目标碰撞率(R)的情况下,如何计算随机码最小长度以确保碰撞概率低于指定值。通过公式C = P * T / R,得出在不同字符集(数字、字母或数字字母混合)下的最小字符数,以纯数字为例,需要9个字符。随着实际运行,碰撞率会逐渐上升,但因有限的有效期,实际值仍将低于设定的R。
最低0.47元/天 解锁文章
8137

被折叠的 条评论
为什么被折叠?



