Задание №8 — Комбинаторика
Все шестибуквенные слова, составленные из букв Ф, А, В, О, Р, И, Т, записаны в алфавитном порядке и пронумерованы.
1. АААААА
2. АААААВ
3. АААААИ
4. АААААО
5. АААААР
6. АААААТ
7. АААААФ
...
Определите в этом списке количество слов с чётными номерами, которые не начинаются с буквы О и при этом содержат в своей записи ровно две буквы Р.
Правильный ответ
8640
Пояснение
Решение:
Букв семь, в алфавитном порядке: А, В, И, О, Р, Т, Ф. Слово с номером — это число , записанное в семеричной системе счисления (А=0, В=1, И=2, О=3, Р=4, Т=5, Ф=6).
Основание 7 нечётно, поэтому чётность числа определяется суммой всех его цифр, а не только последней, — «красивого» короткого правила для отбора чётных номеров здесь нет. Проще перебрать все слов и посчитать подходящие: номер чётный, первая буква не О, букв Р ровно две.
from itertools import product
count = 0
for n, w in enumerate(product('АВИОРТФ', repeat=6), 1):
s = ''.join(w)
if n % 2 == 0 and s[0] != 'О' and s.count('Р') == 2:
count += 1
print(count)
Программа выводит 8640.
Ответ: 8640