关于 PHP 生成 32 位随机数
一、代码
上代码:
1 | private function generateOutBizNo($length = 16) { |
二、解释
下面用不同的方式解释下这样生成的 32 位随机数,重复的概率有多少。
1、方式一
1byte 等于 8bit,例如:11010010
所谓二进制字节,逢二进一,因此每一个 bit 上,不是 0 就是 1,每个 bit 有 2 种可能。
那么 1 个 byte 就有 2^8 = 256
(2的8次方)种可能。
那么 16 个 byte 就有 256^16
种,也就是 (2^8)^16 = 2^128
种可能。
2、方式二
直接看二进制转十六进制的长度为 32 的字符串,
每一个字符都有可能是 0~9、a~f
中的一种 (16种),那么就是 16^32 = (2^4)^32 = 2^128
种可能性。
三、总结
2^128
是一个极大的数,按理说重复的概率几乎可以忽略不计。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 上发条的树!
评论