Задача к ЕГЭ по информатике на тему «слова в алфавитном порядке» №3

Все пятибуквенные слова, в составе которых могут быть только русские буквы П, Я, Т, Н, О записаны в алфавитном порядке и пронумерованы начиная с 1.

Ниже приведено начало списка:

  1. ННННН
  2. ННННО
  3. ННННП
  4. ННННТ
  5. ННННЯ
  6. НННОН

    ….

Под каким номером в списке идёт последнее слово, которое содержит не более двух букв Т, или не содержит совсем, и содержит буквы ПП, стоящие рядом?

Решение руками:

Заменим буквы на цифры: Н — 0, О — 1, П — 2, Т — 3, Я — 4. Получим новый список:

  1. 00000
  2. 00001
  3. 00002
  4. 00003
  5. 00004
  6. 00010

    ….

Так как в вопросе задачи требуется найти последнее слово с обязательным содержанием комбинации двух букв ПП, то на первые три места поставим букву Я, а на последние два ПП. Получим слово ЯЯЯПП. Заменяя буквы на цифры получим, что для нахождения слова ЯЯЯПП, нужно найти значение числа 444225  в десятичной системе. Им является число 311210  , но поскольку номер в списке на единицу больше самого числа, то остаётся добавить к получившемуся числу единицу. Получаем число 3113.

Решение Python:

from itertools import *
c = 0
for i in product(’НОПТЯ’, repeat = 5):
    s = ’’.join(i)
    c += 1
    if s.count(’Т’) <= 2 and ’ПП’ in s:
        print(c)

Решение Python:

alf = ’НОПТЯ’
c= 0
for i in alf:
    for j in alf:
        for k in alf:
            for l in alf:
                for m in alf:
                    s = i + j + k + l + m
                    c += 1
                    if s.count(’Т’) <= 2 and ’ПП’ in s:
                        print(c)

Ответ: 3113
Оцените статью
Я решу все!