Задача к ЕГЭ по информатике на тему «подсчет количества слов/чисел» №12

Сколько различных шестибуквенных кодовых слов можно составить из букв П,Р,О,Г,А, если в каждом из них буква Р встречается не менее 3 раз?

Для начала воспользуемся формулой сочетаний: Ckn = (nn−!k)!⋅k!  .

При помощи неё найдём количество вариантов расставить 3 буквы Р на 6 мест: C36 = (6−6!3)!⋅3! = 20

Аналогичным образом найдём, что расставить 4 буквы Р на 6 мест можно 15-ю способами, 5 букв Р – 6-ю способами и 6 букв Р – 1 способом.

На оставшиеся места всегда можно расставить 4 буквы – все кроме Р. Так при 3-х буквах Р останется 3 места, при 4-х – 2 места, при 5-и – 1 место и 0 мест при 6-и буквах Р.

Перемножим всё для каждого кол-ва букв Р и получим ответ:

20⋅43 + 15 ⋅42 + 6⋅4 + 1 = 1545

Решение программой (циклы):

ans = set()
alf = ’ПРОГА’

for x1 in alf:
    for x2 in alf:
        for x3 in alf:
            for x4 in alf:
                for x5 in alf:
                    for x6 in alf:
                        w = x1 + x2 + x3 + x4 + x5 + x6
                        if w.count(’Р’) >= 3:
                            ans.add(w)
print(len(ans))

Решение программой (itertools):

from itertools import product

ans = set()
alf = ’ПРОГА’

for w in product(alf, repeat=6):
    w = ’’.join(w)
    if w.count(’Р’) >= 3:
        ans.add(w)
print(len(ans))

Ответ: 1545
Оцените статью
Я решу все!