2010-07-21 2 views
0

Я рассматриваю этот генератор случайных строк в 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)?

+7

Является ли это домашнее задание? Kinda пахнет домашней работой. – Joel

+0

Просто для удовольствия ... вот еще один способ создать ваш массив: 'my @chars = grep {/ [^ 10ILO] /} 0 .. 9, 'A' .. 'Z';' – toolic

+0

Это не домашнее задание , Это должно решить внутреннее обсуждение того, как математически случайным является «генерация случайных строк». –

ответ

3

Ответ: (1/31)^12

Или более обобщенно: (1/(число символов))^длина

+0

Thats 1.2e-18 или 1.2 quintillion возможных строк. – dwarring

 Смежные вопросы

  • Нет связанных вопросов^_^