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

Все шестибуквенные слова, в составе которых могут быть только русские буквы А, П, Р, Е, Л, Ь записаны в алфавитном порядке и пронумерованы начиная с 1.

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

1. АААААА

2. АААААЕ

3. АААААЛ

4. АААААП

5. АААААР

6. АААААЬ

Под каким номером идёт первое слово, в котором буква А не стоит рядом с буквами Е и Л и одна буква повторяется дважды, а остальные различны?

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

Обозначим буквы – А-0, Е-1, Л-2, П-3, Р-4, Ь-5. Тогда первое слово, в котором буква А не стоит рядом с буквами Е и Л и одна буква повторяется дважды, а остальные различны, это

0031246 = 70010

Но так как в списке нумерация начинается с единицы, то номер слова равен 700 +1 = 701  .

Решение Python:

a = ’АЕЛПРЬ’
c = 0
for i in a:
    for j in a:
        for n in a:
            for k in a:
                for m in a:
                    for p in a:
                        s = i + j + n + k + m + p
                        c += 1
                        # так как нужно наименьший номер, то двумя одинаковыми буквами будут буквы А
                        if (s.count(’А’) == 2 and all(s.count(char) <= 1 for char in ’ЕЛПРЬ’) and
                            not any(sub in s for sub in [’АЕ’, ’ЛА’, ’ЕА’, ’АЛ’])):
                            print(c)

Решение Python:

from itertools import product

c = 0
for i in product(’АЕЛПРЬ’, repeat=6):
    s = ’’.join(i)
    c += 1
    if (s.count(’А’) == 2 and all(s.count(char) <= 1 for char in ’ЕЛПРЬ’) and
        not any(sub in s for sub in [’АЕ’, ’ЛА’, ’ЕА’, ’АЛ’])):
        print(c)

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