给定一个生成随机生成的12个字符的字符串的脚本,两个字符串相等的可能性有多少?
function rand_string( $length ) {
$chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
$size = strlen( $chars );
for( $i = 0; $i < $length; $i++ ) {
$str .= $chars[ rand( 0, $size - 1 ) ];
}
return $str;
}
Run Code Online (Sandbox Code Playgroud)
假设,A-Za-z0-9有62个可能的字符值.因此,有62 ^ 12(对于权力)可能的字符串.这大约是3x10 ^ 21(3个,有21个零).
假设一个完美的随机数生成器,那就是任何两个特定字符串相等的3x10 ^ 21的机会.