Все пятибуквенные слова, составленные букв Г, Р, А, Ф, И, Н, записаны в алфавитном порядке и пронумерованы.
Вот начало списка:
1. ААААА
2. ААААГ
3. ААААИ
4. ААААН
5. ААААР
6. ААААФ
...
Определите, под каким номером в этом списке стоит последнее слово с нечётным номером, которое начинается с букв Г, Р или Ф и при этом содержит в своей записи не менее одной буквы А.
Примечание.
Слово — последовательность идущих подряд букв, не обязательно осмысленная.
Решение
🔹 Шаг 1. Алфавит и перебор слов
from itertools import product
letters = sorted("ГРАФИН")
words = product(letters, repeat=5)
for word in words:
print(word)
break
📌 Результат: слово представлено как кортеж букв, например ('А', 'А', 'А', 'А', 'А')
🔹 Шаг 2. Нумерация слов
from itertools import product
letters = sorted("ГРАФИН")
words = product(letters, repeat=5)
for num, word in enumerate(words, 1):
print(num, word)
if num == 10:
break
📌 Результат: каждое слово имеет порядковый номер, нумерация начинается с 1.
🔹 Шаг 3. Проверка чётности номера
from itertools import product
letters = sorted("ГРАФИН")
words = product(letters, repeat=5)
for num, word in enumerate(words, 1):
if num % 2 == 1:
print(num, word)
if num == 10:
break
📌 Результат: выводятся только слова с нечётным номерами.
🔹 Шаг 4. Добавление условий к слову
from itertools import product
letters = sorted("ГРАФИН")
words = product(letters, repeat=5)
for num, word in enumerate(words, 1):
if num % 2 == 1 and word[0] in "ГРФ" and word.count("А") >= 1:
print(num, word)
📌 Результат: добавлены условия к слову: num % 2 == 1 and word[0] in "ГРФ" and word.count("А") >= 1.
🔹 Шаг 5. Поиск подходящего слова
Цель: найти последнее подходящее слово и вывести его номер.
# Подключаем перебор слов и сортируем "ГРАФИН"
from itertools import product
letters = sorted("ГРАФИН")
# создаем множество пятибуквенных слов
words = product(letters, repeat=5)
# переменная для хранения номера слова
last_num = 0
# Перебираем слова и проверяем условие
for num, word in enumerate(words, 1):
if num % 2 == 1 and word[0] in "ГРФ" and word.count("А") >= 1:
last_num = num
# Выводим номер — это ответ
print(last_num)
📌 Результат: программа найти последнее подходящее слово и вывести его номер. Ответ: 7771.