news 2026/5/1 6:14:50

从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/4/30 11:26:15

Java SpringBoot+Vue3+MyBatis 影院购票系统系统源码|前后端分离+MySQL数据库

摘要 随着互联网技术的快速发展,在线购票系统逐渐成为现代影院管理的重要组成部分。传统的线下购票方式存在效率低、排队时间长、资源分配不均等问题,而在线购票系统能够有效解决这些痛点,为用户提供便捷的购票体验。影院购票系统通过整合影院…

作者头像 李华
网站建设 2026/5/1 6:14:36

Elasticsearch 分片满了?「cluster.max_shards_per_node」报错

目录一、问题原因分析二、解决方案(按优先级排序)1. 临时调整集群分片上限(快速缓解)2. 检查并优化现有分片(长期解决方案)3. 检查服务器文件描述符限制(底层排查)三、验证解决方案总…

作者头像 李华
网站建设 2026/4/25 15:24:07

HelloGitHub低代码革命:5款零基础也能玩转的开源神器

HelloGitHub低代码革命:5款零基础也能玩转的开源神器 【免费下载链接】HelloGitHub 项目地址: https://gitcode.com/GitHub_Trending/he/HelloGitHub HelloGitHub低代码开发平台正在彻底改变编程学习方式,让零基础的普通用户也能轻松构建自己的数…

作者头像 李华
网站建设 2026/4/19 19:58:10

Langchain-Chatchat回滚机制设计:出现问题快速恢复的预案

Langchain-Chatchat 回滚机制设计:快速恢复的工程实践 在智能知识系统日益普及的今天,一个看似微小的配置错误,可能让整个问答服务陷入瘫痪——用户提问无响应、检索结果错乱、甚至模型加载失败。这类问题在本地部署的 LLM 应用中尤为常见&am…

作者头像 李华
网站建设 2026/4/22 0:49:47

Langchain-Chatchat OAuth2集成:统一身份认证平台对接

Langchain-Chatchat OAuth2集成:统一身份认证平台对接 在企业构建智能问答系统的实践中,一个常见的矛盾逐渐浮现:我们渴望大模型带来的智能化能力,又担心数据泄露的风险。尤其是当系统需要处理内部政策、技术文档或客户资料时&…

作者头像 李华
网站建设 2026/3/28 1:31:08

终极指南:用动漫主题彻底改变你的VS Code编程体验

终极指南:用动漫主题彻底改变你的VS Code编程体验 【免费下载链接】doki-theme-vscode Cute anime character themes for VS-Code. 项目地址: https://gitcode.com/gh_mirrors/do/doki-theme-vscode 想要为枯燥的编程环境注入活力吗?VS Code动漫主…

作者头像 李华