Все пятибуквенные слова, в составе которых могут быть только русские буквы П, Я, Т, Н, О записаны в алфавитном порядке и пронумерованы начиная с 1.
Ниже приведено начало списка:
- ННННН
- ННННО
- ННННП
- ННННТ
- ННННЯ
-
НННОН
….
Под каким номером в списке идёт последнее слово, которое содержит не более двух букв Т, или не содержит совсем, и содержит буквы ПП, стоящие рядом?
Решение руками:
Заменим буквы на цифры: Н — 0, О — 1, П — 2, Т — 3, Я — 4. Получим новый список:
- 00000
- 00001
- 00002
- 00003
- 00004
-
00010
….
Так как в вопросе задачи требуется найти последнее слово с обязательным содержанием комбинации двух букв ПП, то на первые три места поставим букву Я, а на последние два ПП. Получим слово ЯЯЯПП. Заменяя буквы на цифры получим, что для нахождения слова ЯЯЯПП, нужно найти значение числа в десятичной системе. Им является число
, но поскольку номер в списке на единицу больше самого числа, то остаётся добавить к получившемуся числу единицу. Получаем число 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)