Задача с сайта https://kpolyakov.spb.ru/
Вася составляет 5-буквенные слова, в которых есть только буквы К, А, Т, Е, Р, причём буква Р используется в каждом слове хотя бы 2 раза. Каждая из других допустимых букв может встречаться в слове любое количество раз или не встречаться совсем. Словом считается любая допустимая последовательность букв, не обязательно осмысленная. Сколько существует таких слов, которые может написать Вася?
Решение руками
Можем считать количество слов, где буква встречается 2, 3, 4, 5 раз или посчитать общее количество слов и вычесть слова с 0 и 1 буквой
.
Всего:
0 раз:
1 раз:
(так как
может стоять на пяти позициях)
Хотя бы 2 раза:
Решение программой
from itertools import * # Импорт модуля itertools для работы с комбинаторикой
c = 0 # Счётчик для подсчёта подходящих комбинаций
# Генерация всех возможных комбинаций длины 5 из букв ’КАТЕР’
t = product(’КАТЕР’, repeat=5)
for i in t: # Перебор всех комбинаций
s = ’’.join(i) # Преобразование кортежа в строку
# Проверка, что буква ’Р’ встречается 2 или более раз
if s.count(’Р’) >= 2:
c += 1 # Увеличение счётчика, если условие выполнено
print(c) # Вывод результата