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

Все пятибуквенные слова, составленные из букв Б, О, Р, записаны в алфавитном порядке и пронумерованы, начиная с 1. Ниже приведено начало списка:

  1. БББББ
  2. ББББО
  3. ББББР
  4. БББОБ

    ….

Укажите количество слов, стоящих между словами ОБРОБ и РОББР (не включая данные слова)

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

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

  1. 00000
  2. 00001
  3. 00002
  4. 00010

    ….

Полученный список — числа в троичной системе счисления, записанные по возрастанию. Слово ОБРОБ в списке будет иметь номер 102103  , а слово РОББР — 210023  . Переведем полученные значения в десятичную систему счисления: 102103  = 10210  , 210023  = 19110  . Между словамм ОБРОБ и РОББР стоит 191-102-1=88 слов (-1 так как оба слова по условию не учитываются).

Решение Python:

from itertools import *
c = 0
res1 = 0
res2 = 0
for i in product(’БОР’, repeat = 5):
    s = ’’.join(i)
    c += 1
    if s == ’ОБРОБ’:
        res1 = c
    if s == ’РОББР’:
        res2 = c
print(abs(res2 - res1) - 1)

Решение Python:

alf = ’БОР’
c, res1, res2 = 0, 0, 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 == ’ОБРОБ’:
                        res1 = c
                    if s == ’РОББР’:
                        res2 = c
print(abs(res2 - res1) - 1)

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