Вчера разбирали проблемные задачи по просьбе моей ученицы. Девушка способная, внимательная и умная. Просто есть страх перед некоторыми задачами. И я её прекрасно понимаю. Потому что во время учебы в школе нам ничего не объясняли, у меня тоже был бы страх перед такими задачами. Этой короткой заметкой я хочу немного успокоить тех ребят, которые боятся даже начинать решать 8 задание по информатике.
По ОГЭ у меня на канале недавно были статейки, поэтому пора бы и честь знать — о ЕГЭ вспомнить 🧐
Сразу перейдем к практике...
Задача
Все 5-буквенные слова, составленные из букв А, О, У, записаны в алфавитном порядке. Вот начало списка:
1. ААААА
2. ААААО
3. ААААУ
4. АААОА
……
Запишите слово, которое стоит на 210-м месте от начала списка.
Решение:
Итак, у нас слова, буквы постоянно меняются, но как найти нужное слово? Не будем же мы на черновике расписывать до 210 строчки? Нам и 4 часов не хватит на такую рутину. Тогда аналитического способа нет и обязательно писать код? На самом деле можно решить аналитически и довольно просто.
Способ 1
Немного посмотрев на четыре строчки примера, мы можем заметить, что у нас действительно идут слова по возрастанию в алфавитном порядке. Ориентироваться на буквах довольно сложно. Давайте заменим их на цифры. Присвоим «А» = 0, «О» = 1, «У» = 2. Тогда мы получим таблицу из чисел:
1. 00000
2. 00001
3. 00002
4. 00010
Здесь нужно сделать одно замечание, после которого мы разделаемся с задачкой, как котейка с колбаской! Каждая строка состоит из 5 разрядов. Каждый разряд изменяется от 0 до 2. Числа 0, 1, 2 — остатки от деления на 3. Значит каждая строка — это текущее натуральное число, представленное в троичной системе исчисления. Единственная тонкость — наши числа начинаются с 0, а номера строк начинаются с 1. Значит на строке с номером n = 210 будет стоять последовательность из букв, которые будут соответствовать последовательности из чисел, которые будут являться троичной записью числа 209 (да да, на 1 меньше чем 210, потому что начинаем мы с 0, который получается из 00000, что соответствет ААААА). Теперь понимаете?
Остается перевести 209 в десятичной системе в некоторое (какое?) число в троичной системе исчисления. Это можно сделать делением в столбик на черновике:
Получается, что на 210 строке у нас будет стоять последовательность из цифр 21202, что будет соответствовать УОУАУ.
Визуализируем в табличку:
Способ 2
Куда же нам без кодинга? Да, задачку можно решить на Python или любом другом ЯП. Просто на Python это делается быстрее, вы сами это знаете.
Исходный код в текстовом виде (обязательно запускайте у себя)
Разумеется, все комментарии можно убрать, поэтому программка совсем небольшая. А комментарии написаны для лучшего понимания ребят, которые еще не сталкивались с программированием.
Ответ: УОУАУ
А как бы Вы решали такую задачку?
Понравилась статья? Поставьте лайк, подпишитесь на канал! Вам не сложно, а мне очень приятно :)
Если Вам нужен репетитор по физике, математике или информатике/программированию, Вы можете написать мне или в мою группу Репетитор IT mentor в VK
Библиотека с книгами для физиков, математиков и программистов
Репетитор IT mentor в telegram