8.01 Слова в алфавитном порядке
Ошибка.
Попробуйте повторить позже
Все 5-буквенные слова, составленные из букв C,О,К, записаны в алфавитном порядке. Вот начало списка:
1. ККККК
2. ККККО
3. ККККС
4. КККОК
.....
Запишите слово, которое стоит под номером 147.
Решение руками:
Заменим буквы К, О, С на цифры 0, 1 и 2 соответственно. Тогда начало списка выглядит следующим образом:
1. 00000
2. 00001
3. 00002
4. 00010
...
Получаем, что в нашем списке стоят числа, записанные в троичной системе счисления. На 147 месте будет стоять
число . Переведем его в троичную систему счисления:
.
Заменим цифры на буквы и получим слово ОСОКС.
Решение через циклы
Перебираем все 5-буквенные слова из букв КОС в алфавитном порядке, где каждый цикл отвечает за один символ. Для
каждого слова увеличиваем счётчик, и когда он достигает значения 147, выводим текущее слово и завершаем
перебор.
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 c == 147: # Проверяем, достигли ли нужного номера print(s) # Выводим слово под номером 147 break # Завершаем перебор
Решение через itertools
Для решения задачи с помощью модуля itertools воспользуемся функцией product. Она генерирует все комбинации
длины 5 из букв КОС в алфавитном порядке. Для каждого слова увеличиваем счётчик, и когда он достигает значения
147, выводим текущее слово и завершаем перебор.
from itertools import product c = 0 # Счётчик для нумерации слов # Генерация всех возможных 5-буквенных комбинаций из букв К, О, С for i in product("КОС", repeat=5): s = "".join(i) # Преобразуем кортеж символов в строку c += 1 # Увеличиваем счётчик if c == 147: # Проверяем, достигли ли нужного номера print(s) # Выводим слово под номером 147 break # Завершаем перебор
Специальные программы

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

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

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

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

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

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