Найти в Дзене

Задание 8 ЕГЭ по информатике: номер слова в списке

В задании 8 есть несколько прототипов. В этой статье я хочу разобраться с типом задач, в которых требуется из предложенных букв решить различные комбинаторные задачки.

Рассмотрим несколько заданий для примера.

Задание 8 ЕГЭ по информатике
Задание 8 ЕГЭ по информатике

Чтобы легко решать подобные задачи, нужно понять, что за N количеством букв "прячется" система счисления с основанием N.

Вместо букв (в алфавитном порядке) будем использовать цифры (0,1,2,3). Тогда букве А будет соответствовать 0, Б - 1, 3 - 2, И-3. И искомое слово ИЗБА будет выглядеть как число 3210.

Начало списка, выраженное через числа будет выглядеть так:

  1. 0000 (0 в десятичной СС)
  2. 0001 (1 в десятичной СС)
  3. 0002 (2 в десятичной СС)
  4. 0003 (3 в десятичной СС)
  5. 0010 (4 в десятичной СС)

...

Это ни что иное, как числа в системе счисления с основанием 4, идущие по порядку с шагом 1. Так как список устроен так, что числу 0 соответствует номер списка 1, 1 — номер списка 2 и т.д., понятно, что номер в списке искомого числа будет равен самому этому числу в десятичной системе счисления плюс 1.

Итак, мы готовы получить ответ на это задание. Запускаем Pycharm и пишем:

print ( int('3210',4)+1)

Получаем ответ: 229.

Всего лишь одна строка кода и никаких переборов и библиотек itertools.

Аналогичное задание:

-2

Букве М будет соответствовать цифра 1, и первое по порядку слово начинающееся с М будет выглядеть как '1000'

print ( int('1000',4)+1)

Дает ответ 65.

Следующее:

-3

Расположив буквы в алфавитном порядке, получим: К-0, О-1, С-2, У-3, Ф-4.

Последнее слово (без условий) выглядит как ФФФФФ, но букву Ф использовать нельзя. Без Ф самое последнее слово будет выглядеть как УУУУУ. Но букв У может быть только 2. Учитывая все условия, получаем, что искомое слово УУССС. Оно соответствует числу 33222 в системе счисления по основанию 5.

print ( int('33222',5)+1)

Ответ: 2313.

Решите сами: