釉她 发表于 2025-12-19 18:15:00

从random随机数看验证码重复数字

本文分享自天翼云开发者社区《从random随机数看验证码重复数字》.作者:王****淋
## 推导: 1. 有6个不同数字- (0个重复数字: 1+1+1+1+1+1):$$p(6) = C_{10}^6 * 6! \div 10^6$$
2. 有5个不同数字- (某个数字重复了2次: 1+1+1+1+2):$$p(5) = (\frac{C_{10}^5 * C_5^1}{2!*1!*1!*1!*1!} ) * 6! \div 10^6$$$$     = (\frac{C_{10}^5 * C_5^1}{2!} ) * 6! \div 10^6$$
3. 有4个不同数字- (某个数字重复了3次: 1+1+1+3,或某2个数字各重复2次: 1+1+2+2)。(省略$1!$):$$p(4) = (\frac{C_{10}^4 * C_4^1}{3!} + \frac{C_{10}^4 * C_4^2}{2!*2!}) * 6! \div 10^6$$
4. 有3个不同数字- (某个数字重复了4次: 1+1+4,或某个数字重复3次+某数字重复2次: 1+3+2, 或3个数字哥重复2次: 2+2+2):$$p(3) = (\frac{C_{10}^3 * C_3^1}{4!} + \frac{C_{10}^3 * C_3^1 * C_2^1}{3!*2!}  +\frac{C_{10}^3 * C_3^3}{2!*2!*2!}) * 6! \div 10^6$$
5. 有2个不同数字- (某个数字重复了5次: 1+5,或某个数字重复4次+某数字重复2次: 4+2, 或2个数字哥重复3次: 3+3): (省略$1!$):$$p(2) = (\frac{C_{10}^2 * C_2^1}{5!} + \frac{C_{10}^2 * C_2^1}{4!*2!} + \frac{C_{10}^2 * C_2^2}{3!*3!}) * 6! \div 10^6$$
6. 有1个不同数字(6个相同的重复数字):$$p(1) = \frac{C_{10}^1}{6!} * 6! \div 10^6$$ ## 蒙特卡洛 ```py import random
# 6位验证码, 相同数字的概率: 蒙特卡洛def mtkr(count:int=10, is_show:bool=True, debug:bool = False):        ans =     for i in range(count):        array_i =                      n = len(list(set(array_i)))        if debug:            print(n, ": ", array_i)        ans += 1    # end_for       if is_show:        print('-' * 30)        print('蒙特卡洛: count:', count, ";  \n模拟结果: ")        for i in range(6):            print("unique", 6-i, ": ", ans/count)    return
ans = mtkr(100000, is_show=True, debug=False)print(ans)res_plot(ans)  # 结果:# 模拟结果:# unique 6 : 0.15148# unique 5 : 0.45396# unique 4 : 0.32748# unique 3 : 0.0643# unique 2 : 0.00278 u# nique 1 : 0.0 ```
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

叶芷雁 发表于 2025-12-23 19:46:50

感谢,下载保存了

柯惠心 发表于 2026-1-19 02:21:58

很好很强大我过来先占个楼 待编辑

眩疝诺 发表于 2026-1-19 07:33:08

感谢分享,下载保存了,貌似很强大

战匈琼 发表于 2026-1-20 19:45:40

谢谢分享,辛苦了

衣旱 发表于 2026-1-23 02:11:01

感谢,下载保存了

事值 发表于 2026-1-23 10:24:12

很好很强大我过来先占个楼 待编辑

金娅鸣 发表于 2026-1-24 04:56:27

谢谢分享,辛苦了

倡遍竽 发表于 2026-1-24 10:39:49

鼓励转贴优秀软件安全工具和文档!

村亢 发表于 2026-1-29 07:09:23

前排留名,哈哈哈

靛尊 发表于 2026-1-29 21:13:47

yyds。多谢分享

卿搞笔 发表于 2026-2-4 04:18:37

谢谢楼主提供!

玲液 发表于 2026-2-9 14:12:14

感谢分享,学习下。

娥搽裙 发表于 2026-2-9 15:20:02

过来提前占个楼

何书艺 发表于 2026-2-9 16:11:40

谢谢楼主提供!

赴忽 发表于 2026-2-10 08:42:19

yyds。多谢分享

柯惠心 发表于 2026-2-10 13:31:24

很好很强大我过来先占个楼 待编辑

胁冉右 发表于 2026-2-12 20:05:45

用心讨论,共获提升!

诘琅 发表于 2026-2-12 22:33:46

感谢分享

皆炳 发表于 2026-2-19 07:06:20

前排留名,哈哈哈
页: [1] 2
查看完整版本: 从random随机数看验证码重复数字