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

Все 5-буквенные слова, составленные из букв Й,О,Г,А, записаны в алфавитном порядке. Вот начало списка:

1. ААААА

2. ААААГ

3. ААААЙ

4. ААААО

5. АААГА

…..

Под каким номером в списке идёт первое слово, в котором средняя (третья по счёту) буква – О, а последняя — Й?

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

Заменим буквы на цифры: А — 0, Г — 1, Й — 2, О — 3.

Теперь запишем 5-буквенные слова в новом алфавите.

1. 00000

2. 00001

3. 00002

4. 00003

5. 00010

…..

Полученный ряд — числа в четверичной системе счисления, записанные по возрастанию.

Первое слово с третьей по счету буквой О и последней буквой Й — это ААОАЙ, тогда в четверичной системе это слово выглядит так — 003024  .

Переводим в десятичную систему счисления: 302  = 50    4    10  .

Но поскольку номер в списке на единицу больше самого числа, то остается добавить к получившемуся числу единицу. Получаем число 51.

Решение Python:

from itertools import *
c = 0
for i in product(’АГЙО’, repeat = 5):
    s = ’’.join(i)
    c += 1
    if s[-1] == ’Й’ and  s[2] == ’О’:
        print(c)
        break

Решение 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[-1] == ’Й’ and  s[2] == ’О’:
                        print(c)

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