【问题标题】:How many random strings does this code generate?此代码生成多少个随机字符串?
【发布时间】:2011-03-19 05:04:40
【问题描述】:

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

【问题讨论】:

  • 这是作业吗?有点像家庭作业的味道。
  • 这不是家庭作业。这是为了解决关于“随机字符串生成”在数学上如何随机的内部讨论。
  • @Dave:你问了一个完全不同的问题,这将有助于“解决关于“随机字符串生成”在数学上如何随机的内部讨论”。见perlmonks.org/?node=XY%20Problem

标签: perl random statistics probability


【解决方案1】:

答案是:(1/31) ^ 12

或更笼统地说:(1/(字符数)) ^ 长度

【讨论】:

  • 那是 1.2e-18 或 1.2 quintillion 可能的字符串。
猜你喜欢
  • 2017-04-05
  • 2014-03-07
  • 2017-08-01
  • 2011-06-30
  • 2011-07-23
  • 1970-01-01
相关资源
最近更新 更多