8.01 Слова в алфавитном порядке
Ошибка.
Попробуйте повторить позже
Все 5-буквенные слова, составленные из букв К,Н,И,Г,А, записаны в алфавитном порядке. Вот начало списка:
1. ААААА
2. ААААГ
3. ААААИ
4. ААААК
5. ААААН
6. АААГА
.....
Под каким номером в списке идёт слово КНИГА?
Решение руками
Заменим буквы на цифры: А - 0, Г - 1, И - 2, К - 3, Н – 4.
Теперь запишем 5-буквенные слова в новом алфавите.
1. 00000
2. 00001
3. 00002
4. 00003
5. 00004
6. 00010
.....
Полученный ряд - числа в пятиричной системе счисления, записанные по возрастанию.
Слово КНИГА в пятиричной системе выглядит так – .
Переводим в десятичную систему счисления: .
Но поскольку номер в списке на единицу больше самого числа, то остается добавить к получившемуся числу единицу. Получаем число 2431.
Решение программой с помощью циклов
Напишем программу для перебора всевозможных 5-буквенных слов из букв К,Н,И,Г,А в алфавитном порядке. Для этого организуем 5 вложенных циклов for, каждый из которых будет перебирать буквы в порядке А → Г → И → К → Н, что соответствует алфавитному списку. Вложенные циклы работают как разряды в числе: сначала меняется последняя буква (самый внутренний цикл), затем предпоследняя и так далее. Это аналогично перебору чисел в порядке возрастания (например, 000, 001, 002...).
После составления очередного слова необходимо его проверить на соответствие слову "КНИГА и если совпадение найдено, выведем его порядковый номер в списке.
alf = ’АГИКН’ # Алфавитный порядок букв: А, Г, И, К, Н c = 0 # Счётчик для нумерации слов # Генерация всех 5-буквенных слов через вложенные циклы for i in alf: # 1-я буква for j in alf: # 2-я буква for k in alf: # 3-я буква for l in alf: # 4-я буква for m in alf: # 5-я буква s = i + j + k + l + m # Собираем слово c += 1 # Увеличиваем счётчик if s == ’КНИГА’: # Если текущее слово — "КНИГА" print(c) # Выводим его номер
Решение программой с помощью модуля itertools
Для решения задачи с помощью модуля itertools воспользуемся функцией product. Она генерирует все комбинации заданной длины с повторениями из заданного алфавита. Функция product Сохраняет алфавитный порядок, так как перебирает символы в том же порядке, в котором они указаны алфавите.
После составления очередного слова необходимо его проверить на соответствие слову "КНИГА и если совпадение найдено, выведем его порядковый номер в списке.
from itertools import * # Импортируем функцию product c = 0 # Счётчик для нумерации слов # Генерируем все возможные 5-буквенные комбинации из букв А,Г,И,К,Н for i in product(’АГИКН’, repeat = 5): s = ’’.join(i) # Преобразуем кортеж символов в строку c += 1 # Увеличиваем счётчик на 1 для каждого нового слова if s == ’КНИГА’: # Если текущее слово — "КНИГА" print(c) # Выводим его номер и завершаем поиск
Специальные программы

Программа
лояльности v2.0
Приглашай друзей в Школково и получай вознаграждение до 10%!

Крути рулетку
и выигрывай призы!
Крути рулетку и покупай курсы со скидкой, которая привязывается к вашему аккаунту.

Бесплатное онлайн-обучение
Для школьников из приграничных территорий России, проживающих в ДНР, ЛНР, Херсонской, Запорожской, Белгородской, Курской, Брянской областях и Крыму.

Налоговые вычеты
Узнай, как получить налоговый вычет при оплате обучения в «Школково».

Специальное предложение
для учителей
Бесплатный доступ к любому курсу подготовки к ЕГЭ, ОГЭ и олимпиадам от «Школково». Мы с вами делаем общее и важное дело, а потому для нас очень значимо быть чем-то полезными для учителей по всей России!

Вернём деньги за курс
за твою сотку на ЕГЭ
Сдать экзамен на сотку и получить обратно деньги за подготовку теперь вполне реально!