这段代码生成了多少个随机字符串?

时间:2010-07-21 19:55:03

标签: perl random statistics probability

我正在考虑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)?

1 个答案:

答案 0 :(得分:3)

答案是:(1/31)^ 12

或者更一般地说:(1 /(字符数))^长度