1. XenForo 1.5.14 中文版——支持中文搜索!现已发布!查看详情
  2. Xenforo 爱好者讨论群:215909318 XenForo专区

圆周率里是否包含所有可能的银行卡密码?

本帖由 漂亮的石头2021-07-10 发布。版面名称:知乎日报

  1. 漂亮的石头

    漂亮的石头 版主 管理成员

    注册:
    2012-02-10
    帖子:
    486,020
    赞:
    46
    [​IMG] 酱紫君,QQ群1014125 阅读原文

    电话号, 生日, QQ 号可能运算量比较大, 但是 6 位的银行卡密码还是没问题的

    题目本身和 Pi 是不是正规数没关系

    但假如承认 Pi 是个正规数会有帮助

    这相当于问一个产生六位随机数的发生器多久能生成所有六位数?

    这是 赠券收集问题 , 那么期望就是

    [​IMG]

    , H 是调和级数

    所以我算这么多大概就能搜索到所有的可能

    [​IMG]

    嗯, 真的把十万个个全部搜出来了

    max=10.^6HarmonicNumber[10.^6]//IntegerPart dts=First@RealDigits[Pi,10,max,-1];//TT all=DeleteDuplicates@Partition[dts,6,1];//TT all//Length

    加起来也就一分钟就不另外放下载了, 自己跑一遍就行


    当然你说要是没搜到怎么办?

    这倒是有可能的,但是还是根据赠券收集原理

    [​IMG]

    搞定的概率只有:

    [​IMG]

    [​IMG]
    我在想这个数好眼熟....

    [^1 更新]: 这个数是

    [​IMG]

    如果要以一半概率找到生日的话需要计算 3.51 亿位, 如果要找手机号要计算 4606 亿位

    [​IMG]

    查了下现在的记录是 22,459,157,718,361(224591 亿位), 那么找到手机号的几率>99.9%

    numberworld/Pi/#Download

    另外很多网站都提供这个服务

    [​IMG]

    当然一个非超越无理数以概率 1 是个正规数, 那么同样适用这样的推理

    我的生日是你的生日开平方后 351084058 位开始 8 个数字
    我的手机是你的手机号开立方后 460653489114 位开始 11 个数字​

    算法竞赛时间: 给出一段代码尽快的算出 6 位数的映射表, 语言不限

    计算π并返回一个列表, 其中包含一串数字的首次出现位置 · Issue #3 · GalAster/Deus


    [^1 更新]57% 怎么推导出来呢?

    [​IMG]

    但是有个问题, 斯特林数有精细结构没法给出渐进表达式

    那么考虑非均匀赠券收集问题

    记事件

    [​IMG]

    为第$n$次选取后第$i$个样本未被选中的情形,于是概率即为相应情形之并.

    然后依容斥原理展开:

    [​IMG]

    其中,$J$代表一种选法集合,

    [​IMG]

    , 即集合$J$中元素的数量.

    其概率生成函数为:

    [​IMG]

    接下来对于期望而言:

    [​IMG]

    注意到

    [​IMG]

    所以上式可以进一步可以写成:

    [​IMG]

    另一方面从累积分布而言:

    [​IMG]

    于是令

    [​IMG]

    [​IMG]

    我们成功把问题转化为连续情形:

    [​IMG]

    其中 n 为规模, t 为计算的位数

    其一阶近似就是 n H(n)

    [​IMG]

    这也是临界情况, 加一个微扰全部找到的概率就是 1, 减一个微扰概率就是 0.

    [​IMG]
    算 10 亿位还找不全的概率几乎为 0
    阅读原文
     
正在加载...