这几天断断续续在寻找 Z=HEX(MD5(MD5(X)) ,且X和Z均为32位纯数字。
因为MD5结果的十六进制表示有16种可能的字符:0-9, a-f
所以单独一位是数字的概率就是 10/16 = 0.625
那全为数字的概率 p = (0.625)^32 ≈ 2.328x10^-7
X → Y → Z 这个链来看,单个X能找到Z的概率就是 pxp
这类概率极低但可以多次尝试的伯努利试验,服从泊松分布。我们可以从MD5(X)的尝试次数 Nx 来计算出“至少找到一个Z”的概率,也可以从MD5(Y)的尝试次数 Ny 来计算出“至少找到一个Z”的概率。
还好Nx和Ny我都有统计,套入公式算出来的概率分别是 51.749531% 和 51.741468% 。这两个概率都十分接近,是不是能说明我的脚本至少在找Y这步没有写错?
但这两个“概率”其实很令我费解,“至少找到一个Z”的概率有百分之51点多,那我是找到了还是没找到。实际上是没找到,那概率代表的是什么意思?要知道单个X能找到Z的概率还是那么的低,完全没有提升。那我百分之51找不到,那百分之81的时候我能找到吗?百分之99%的时候我能找到吗?
我想了一下或许可以这么理解:假设有100个平行时空的我都在做同样的事情,其中有将近52个平行时空的我已经找到这个Z了。不知道对不对。
另外按照泊松分布来算“期望值”,有个比较特殊的概率 P=63.2%,在统计学上被认为是“保底线”。计算公式是:1 - 1/e 。我可以等脚本跑到 63.2% 的时候再看看,我的“运气”如何。
