取快递的数学问题:手机尾号的重复概率

摘要:
在学校门口,四位数的手机尾号用于快递。取n的一些特殊值的概率如下所示:n20406080100120140160180200P2%8%16%27%39%51%62%72%80%87%区间中的函数图像如下:看起来很不直观:为什么重复的概率这么高?然而,你自己的号码与某人的号码相同的概率并不大:因此,重复号码的概率不小,但你自己相遇的概率很小。(然而,令人恐惧的双符号概率仍然是反直觉的

学校门口,四位手机尾号取快递。问:设有 (n) 个包裹,则存在两个包裹号码(收件人手机尾号,假设均匀分布)相同的概率 (P(n)) 是多少?

答曰:手机尾号一共有 (10^4=10000) 个,所以 ( P(n)=frac{A_{10000}^n}{(10000)^n} ), 其中 (A_n^r) 为排列数。

求出表达式非常简单,然而计算具体值时却遇到了麻烦:分子和分母都太大了,IEEE 754 浮点数受不了了,直接扔给我个 Infinity.

怎么办呢?把排列数展开,取对数,乘除变加减:

( log{P(n)} )

( = log{frac{A_{10000}^n}{(10000)^n}} )

( =log{A_{10000}^n}-nlog{10^4} )

( =log{10^4(10^4-1)cdots(10^4-n+1)}-4nlog{10} )

( =log{10^4}+log{(10^4-1)}+cdots+log{(10^4-n+1)}-4nlog{10} )

不想这么麻烦的话,也有很精确的阶乘近似公式可用(这里就不限于整数了):

( left{egin{matrix} n! = Gamma(n+1) \ lnGamma(z) approx frac{1}{2} left[ln(2pi) - ln z ight] + zleft[lnleft(z + frac{1}{12z - frac{1}{10z}} ight) - 1 ight] end{matrix} ight. )

总之,最后能算出来具体的数。下面列出 n 取某些特殊值时的概率:

n20406080100120140160180200
P(n)2%8%16%27%39%51%62%72%80%87%

([20, 200]) 区间内 (y=P(x)) 的函数图像如下(只有 (x) 等于整数的点有实际意义):

取快递的数学问题:手机尾号的重复概率第1张

看起来有点反直觉:重复的概率怎么这么大?确实这么大,只要手机尾号是均匀分布的。

不过,自己的号跟某个人的号一样(存在某个人跟自己同号)的概率并不大:

取快递的数学问题:手机尾号的重复概率第2张

所以,重号的概率不小,但自己碰上的概率就很小了。(不过那大得吓人的重号概率还是很反直觉……)

免责声明:文章转载自《取快递的数学问题:手机尾号的重复概率》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Docker测试一个静态网站HDU 2503 (数论,最大公约数)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

数据库的几种模式

SQL Server数据库有三种恢复模式:简单恢复模式、完整恢复模式和大容量日志恢复模式: 1.Simple 简单恢复模式, Simple模式的旧称叫”Checkpoint with truncate log“,其实这个名字更形象,在Simple模式下,SQL Server会在每次checkpoint或backup之后自动截断log,也就是丢弃所有的in...

svn如何过滤常见的bin/obj/package/log等文件夹的文件

步骤1,在要处理的文件夹上面右击TortoiseSVN,接着点击Settings 步骤2,在Settings里面找到Global Ignore pattern 里面输入*/bin */obj *.vs *packages *bin *obj *log ,注意,每个后面有空格...

FTP主配置文件详解

ftp主配置文件(/etc/vsftpd/vsftpd.conf)中各种参数: anonymous_enable=YES #是否开启匿名用户; no_anon_password=YES #匿名用户login时不询问用户名和口令; anon_umask=077 #匿名用户上传的文件权限是’-rw—-’; anon_upload_enable=YES #是否允...

Vue-draggable组件, 进行Vue 表格内容的拖拽排序

Vue-draggable 的github传送门 :  https://github.com/SortableJS/Vue.Draggable 一. 下载依赖包:npm install vuedraggable -S   二. 在需要使用的当前界面引入依赖,注册组件: import draggable from "vuedraggable"; export...

问题: 查看某个文件的修改记录| git log 高级用法

参考文章: git查看某个文件的修改历史 5.3 Git log 高级用法 基本步骤 git log --pretty=oneline [文件名] git show [节点] git log 两周高级用法结合在一起就能找到想要的 自定义提交的输出格式 --online: 每个提交压缩到一行, 只显示id和提交信息第一行 --decorate: 显...

R语言逻辑回归和泊松回归模型对发生交通事故概率建模

  ​ 原文链接 http://tecdat.cn/?p=14139   我们已经看到了如何考虑风险敞口,计算包含风险敞口的多个数量(经验均值和经验方差)的非参数估计量。让我们看看如果要对二项式变量建模。 这里的模型如下: 未观察到​该期间的索赔数量 ​ 索偿的数量  ​  ​ 考虑一种情况,其中关注变量不是索偿的数量,而仅仅是索偿发生的标...