news 2026/8/19 23:48:13

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
从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 = [0 for i in range(6)]

for i in range(count):

array_i = [random.randint(0, 9) for i in range(6)]

n = len(list(set(array_i)))

if debug:

print(n, ": ", array_i)

ans[6-n] += 1

# end_for

if is_show:

print('-' * 30)

print('蒙特卡洛: count:', count, "; \n模拟结果: ")

for i in range(6):

print("unique", 6-i, ": ", ans[i]/count)

return [i/count for i in ans]

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

```

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/19 8:06:47

SpringBoot+Vue Spring boot社区医院管理系统管理平台源码【适合毕设/课设/学习】Java+MySQL

摘要 随着信息技术的快速发展和医疗行业的数字化转型,社区医院作为基层医疗服务的重要载体,亟需通过信息化手段提升管理效率和服务质量。传统的社区医院管理多依赖手工操作和纸质记录,存在数据易丢失、查询效率低、资源共享困难等问题。为解决…

作者头像 李华
网站建设 2026/8/19 7:28:08

基于SpringBoot + Vue的青少年心理健康平台的设计与实现

文章目录前言一、详细操作演示视频二、具体实现截图三、技术栈1.前端-Vue.js2.后端-SpringBoot3.数据库-MySQL4.系统架构-B/S四、系统测试1.系统测试概述2.系统功能测试3.系统测试结论五、项目代码参考六、数据库代码参考七、项目论文示例结语前言 💛博主介绍&#…

作者头像 李华
网站建设 2026/8/19 17:40:43

基于数据挖掘的小米手机营销数据分析与可视化

文章目录前言一、详细操作演示视频二、具体实现截图三、技术栈1.前端-Vue.js2.后端-SpringBoot3.数据库-MySQL4.系统架构-B/S四、系统测试1.系统测试概述2.系统功能测试3.系统测试结论五、项目代码参考六、数据库代码参考七、项目论文示例结语前言 💛博主介绍&#…

作者头像 李华
网站建设 2026/8/18 23:33:50

kanass全面介绍(23) - 如何将评审与企业微信通知相结合

kanass支持测试用例与需求评审,同时也支持将评审与企业微信通知进行关联,使负责人第一时间接收到通知并及时评审。1、配置企业微信通知进入系统设置->消息->发送方式页面下,点击企业微信后的配置字段说明名称发送方式名称,自…

作者头像 李华
网站建设 2026/8/19 13:16:03

Langchain-Chatchat是否支持语音输入?扩展功能开发思路分享

Langchain-Chatchat是否支持语音输入?扩展功能开发思路分享 在企业知识管理日益智能化的今天,越来越多组织开始关注如何在保障数据隐私的前提下,构建高效、易用的本地问答系统。像会议查询、设备操作指导这类高频场景中,用户往往…

作者头像 李华
网站建设 2026/8/19 12:29:35

Langchain-Chatchat等保三级要求满足情况分析:国内合规指南

Langchain-Chatchat 与等保三级合规性深度解析:构建安全可信的本地化AI问答系统 在金融、政务、医疗等行业,企业对数据安全的要求早已超越“可用即可”的初级阶段。一个典型的现实挑战是:如何在引入大模型智能能力的同时,确保员工…

作者头像 李华