此代码生成多少个随机字符串?
我正在考虑在 perl 中使用这个随机字符串生成器:
sub generate_random_string {
my $length = 12;
my @chars = qw/2 3 4 5 6 7 8 9 A B C D E F G H J K M N P Q R S T U V W X Y Z/;
my $str = '';
$str .= $chars[int rand @chars] for 1..$length;
return $str;
}
这将生成多少个唯一的字符串?如果我延长字符串的长度,还有多少个可用的唯一字符串?
另外,如何计算生成相同字符串两次的概率(假设字符串的长度保持为 12)?
I am considering this random string generator in perl:
sub generate_random_string {
my $length = 12;
my @chars = qw/2 3 4 5 6 7 8 9 A B C D E F G H J K M N P Q R S T U V W X Y Z/;
my $str = '';
$str .= $chars[int rand @chars] for 1..$length;
return $str;
}
How many unique strings will this generate? If I extend the length of the string, how many more unique strings are available?
Also, how do I calculate the probability of generating the same string twice (assuming the length of the string stays at 12)?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
答案是:(1/31) ^ 12
或者更一般地说:(1/(字符数)) ^ 长度
The answer is: (1/31) ^ 12
Or more generically: (1/(number of characters)) ^ length