8.02 Подсчет количества слов/чисел
Ошибка.
Попробуйте повторить позже
Все четырёхбуквенные слова, в составе которых могут быть только буквы Л, Е, М, У, Р, записаны в алфавитном порядке и пронумерованы, начиная с 1. Ниже приведено начало списка.
1. ЕЕЕЕ
2. ЕЕЕЛ
3. ЕЕЕМ
4. ЕЕЕР
5. ЕЕЕУ
6. ЕЕЛЕ
…
Под каким номером в списке идёт первое слово, которое начинается с буквы Л?
Решение аналитически:
Присвоим буквам числовое значение в зависимости от алфавитного порядка. Буквы получат такие значения: Е = 0; Л = 1; М = 2; Р = 3; У = 4.
Первое слово, которое будет удовлетворять условию выглядит так: ЛООО. В числовом представлении это будет выглядеть таким образом: 1000.
Как можем заметить, наш алфавит записан в 5-ричной системе счисления. Данное значение нам нужно перевести в десятичную систему счисления. Значение будет равняться 125.
Нужно увеличить данное значение на единицу, поскольку отсчёт в задаче начинается с 1. Ответ: 126.
Решение программой с помощью циклов:
Для того чтобы определить номер первого слова, начинающегося с буквы Л, составим программу, которая перебирает все возможные четырёхбуквенные слова из букв Е, Л, М, Р, У. Для этого используем четыре вложенных цикла, каждый из которых отвечает за выбор буквы на соответствующей позиции слова. Счётчик c будет увеличиваться при формировании каждого нового слова, и таким образом мы будем знать его номер в алфавитном списке. Когда формируется слово, начинающееся с буквы Л, его номер записывается в список ans. После завершения работы программы выводится первый элемент этого списка, что соответствует номеру первого слова с буквой Л на первом месте.
a = ’ЕЛМРУ’ # алфавит, из которого составляются слова c = 0 # счётчик, отслеживающий номер текущего слова ans = [] # список для хранения номеров слов, начинающихся с Л # Перебираем все возможные варианты букв на 1-й позиции for i in a: # Перебираем буквы на 2-й позиции for j in a: # Перебираем буквы на 3-й позиции for k in a: # Перебираем буквы на 4-й позиции for l in a: s = i + j + k + l # формируем слово из выбранных букв c += 1 # увеличиваем счётчик номера слова # Если слово начинается с буквы Л if i == ’Л’: ans.append(c) # сохраняем его номер print(ans[0]) # выводим номер первого слова, начинающегося с Л
Решение программой с помощью модуля itertools:
Задачу можно упростить, используя модуль itertools и функцию product, которая сразу генерирует все возможные комбинации длины 4 из заданного алфавита с повторениями. Перебираем каждую комбинацию, увеличиваем счётчик и проверяем, начинается ли слово с буквы Л. Как только встречается первое слово, удовлетворяющее условию, выводим его номер и завершаем работу с помощью break.
from itertools import product # импорт функции для генерации слов a = ’ЕЛМРУ’ # алфавит c = 0 # счётчик для нумерации слов # Генерируем все возможные слова длины 4 for i in product(a, repeat=4): s = ’’.join(i) # преобразуем кортеж букв в строку c += 1 # увеличиваем счётчик # Проверяем, начинается ли слово с буквы Л if s[0] == ’Л’: print(c) # выводим номер первого такого слова break # прерываем цикл, так как слово найдено
Специальные программы

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

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

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

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

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

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