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

Настя составляет 6-буквенные слова, в которых есть только буквы К, О, М, А, Р, причём буквы Р, О, К встречаются ровно по одному разу. Буква М встречается не более 2 раз, а буква А может встречаться любое количество раз или не встречаться вовсе. Словом считается любая допустимая последовательность букв, не обязательно осмысленная. Сколько различных слов может составить Настя?

Решение руками

Сначала расставим буквы К, О и Р по одному разу. Букву К можно поставить в любое место из 6, букву О – в любое место из 5, букву Р — в любое место из 4. Итого 6⋅5 ⋅4 = 120  вариантов. Осталось 3 места для букв А и М. Для случая с двумя буквами М существует три варианта расстановки: ММА, МАМ, АММ. Для случая с одной буквой М – также три варианта: МАА, ААМ и АМА. И еще один вариант, когда букв М в слове нет. Итого 3+ 3 + 1 = 7  вариантов расстановки А и М. Получаем всего 120⋅7 = 840  вариантов.

Решение через циклы

a = ’КОМАР’
c = 0
for i in a:
    for j in a:
        for n in a:
            for k in a:
                for m in a:
                    for p in a:
                        s = i + j + n + k + m + p
                        if s.count(’Р’) == 1 and s.count(’О’) == 1 and s.count(’К’) == 1 and s.count(’М’) <= 2: # проверка по условию
                            c += 1
print(c)

Решение через itertools

from itertools import product

count = set()

for x in product(’КОМАР’,repeat = 6):
    s = ’’.join(x)
    # проверка, что буквы Р,О,К встречаются ровно 1 раз и буква М не более 2 раз
    if all(s.count(i) == 1 for i in ’РОК’) and s.count(’М’) <= 2:
        count.add(s)
print(len(count))

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