随机码容量计算

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

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


假设有这么个场景:

给每个进入房间的人分配一个随机码(数字/字母),该随机码在一段时间内有效,那么在有效期内,为了让两个人分配同一个随机码的概率保持在指定值以下,那么随机码的长度最短需要多少个字符?

我是这么计算的:

设:

并发数: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万
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值