Логотип Магариф уку
Цитата:

Разбор типичных ошибок и методы решения задач ЕГЭ по информатике

Приближается горячая пора ГИА, и самое время вспомнить итоги прошлого года, проанализировать основные ошибки, допущенные ребятами, чтобы по возможности избежать их в 2025 году.

 

Аида ГАЙНУТДИНОВА,

доцент КФУ,

председатель экспертной комиссии

по информатике и ИКТ в РТ

 

Вячеслав САДРИЕВ,

учитель информатики

лицея № 145 г. Казани,

заместитель председателя

экспертной комиссии

по информатике и ИКТ в РТ

 

Лид: Приближается горячая пора ГИА, и самое время вспомнить итоги прошлого года, проанализировать основные ошибки, допущенные ребятами, чтобы по возможности избежать их в 2025 году.

В прошлом году в Республике Татарстан предмет информатика и ИКТ в качестве экзаменационного на ЕГЭ выбрали 3069 человек, что составило более 20 % от общего числа участников ЕГЭ. Эта цифра примерно соответствует уровню 2023 года, в предыдущие годы количество участников неуклонно возрастало. Некая стабилизация числа участников может быть объяснена тем фактом, что с 2021 года экзамен по информатике переведен в компьютерный формат, задания усложняются год от года, и заработать хорошие баллы становится все труднее. В 2024 году результаты экзамена по целому ряду показателей ухудшились по сравнению с 2023 годом: на 4 % увеличилась доля участников, которые не смогли преодолеть минимальный порог, на 2,9 % уменьшилось число участников, набравших от 61 до 80 т. баллов, таких ребят стало 35 % от общего числа участников (в 2023 г. 37,9 %), на 5 % уменьшилось число участников, набравших от 81 до 100 т. баллов, их стало 15,25 % (в 2023 г. – более 20 %), средний тестовый балл снизился на 4,18 и составил 59,79 (в 2023 году – 63,97), количество стобалльников также уменьшилось, их оказалось 9 человек (в 2023 году – 22). Единственный показатель с положительной динамикой -  это процент ребят, набравших от минимального до 60 т. баллов, их доля выросла на 4 % и составила 38 %.

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

Как нам кажется, основной причиной увеличения доли участников, не преодолевших минимальный порог, является значительный скачок в сложности экзамена по сравнению с экзаменом в 9 классе. В ОГЭ по информатике установлен низкий минимальный порог в 5 баллов, из-за чего предмет в 9 классе выбирают многие слабые ученики. В силу привлекательности IT-направлений (востребованность на рынке, высокий уровень заработной платы, комфортные условия труда) многие учащиеся выбирают информатику и в 11 классе. Однако далеко не все серьезно оценивают свои силы, ошибочно полагая, что смогут сдать экзамен так же легко, как и в 9 классе. Многие начинают серьезную подготовку к экзамену слишком поздно, не понимая, что хорошо подготовиться к экзамену в короткий срок нереально. Необходима планомерная работа в течение нескольких лет, в обязательном порядке включающая практические занятия на компьютере. Если выпускник сделал выбор данного предмета только на последнем году обучения и не прилагал достаточных усилий в предыдущие годы, он оказывается в очень непростой ситуации. Отличительной особенностью экзамена по информатике является то, что для его успешной сдачи недостаточно просто знаний – необходим практический опыт программирования, сформированность алгоритмического, логического мышления, а это приобретается со временем. Следует объяснять ребятам важность осознанного выбора предмета, явно указывать на имеющийся у них уровень знаний. Для этого отлично подходит тестирование. Ученик выполняет вариант в приближенной к реальному экзамену обстановке, видит количество набранных баллов и примерно понимает, на что может рассчитывать на экзамене. Приоритетной задачей для учителя должно стать не достижение высоких баллов сильными учениками (они и сами на это мотивированы), а уменьшение числа учеников, не сдавших экзамен.

Также одной из причин падения результатов является общая тенденция усложнения заданий экзамена. Мы видим, что контрольно-измерительные материалы с каждым годом приобретают все большие дифференцирующие свойства, а это и составляет их главную цель. В КИМ появляются сложные задания, которые не под силу основной массе выпускников. Кроме того, сам формат проведения экзамена требует сформированности большого количества навыков, в первую очередь -  метапредметных: умения внимательно прочитать, понять и проанализировать условия заданий, в которых зачастую содержатся важные нюансы, существенным образом влияющие на ход решения, умения придумать алгоритм, выстроить правильную последовательность шагов при решении задачи, умения использовать различное ПО. Широкая вариативность возможных средств и методов решения заданий, с одной стороны, является плюсом (ход решения не проверяется, для получения балла нужно только представить правильный ответ), с другой стороны, часто приводит к тому, что участники не в состоянии выбрать наиболее оптимальный способ решения, в результате чего либо тратят на решение слишком много времени, либо вообще выбирают такой способ, при котором не удается получить ответ. Показательный пример такой ситуации – задание 16 повышенного уровня сложности, проверяющее умение вычислять рекуррентные выражения. Рассмотрим задание из демоверсии 2025:

Задание 16. Алгоритм вычисления значения функции F(n), где n – натуральное число, задан следующими соотношениями:

F(n) = 1 при n = 1;

F(n) = (n – 1)× F(n - 1), если n > 1.

Чему равно значение выражения (F(2024) + 2 × F(2023)) / F(2022) ?

Теоретически данное задание можно выполнять программным способом, написав для вычисления F(n)  рекурсивную функцию, и такой способ выглядит наиболее простым: надо просто переписать формулировку задания в синтаксисе выбранного языка программирования. Однако само задание нацелено на проверку понимания сути рекурсивных вычислений, того, каким образом они исполняются, и всегда ли такой способ является наилучшим? И правило здесь такое: не все то, что записывается коротко, так же эффективно и вычисляется. Для приведенной задачи при этом методе решения функция для одних и тех же аргументов будет исполняться несколько раз и из-за того, что аргумент является большим числом, исполнение такого алгоритма потребует очень больших ресурсов (времени и памяти). Если уж и выбирать программный способ для подобной задачи, то никак не рекурсивную функцию, а табличный метод, при котором значения F(n)  для разных n  не перевычисляются, а запоминаются в таблице и извлекаются оттуда в случае необходимости. Приведем подобное решение на языке Phyton:

        F = [0] * 2025    F[1] = 1    for n in range(2, 2025):    F[n] = (n - 1) * F[n - 1]    print((F[2024] + 2 * F[2023]) / F[2022])

Однако наиболее простой (и наиболее правильный) способ решения для этой конкретной задачи – это ручной способ вычисления: необходимо выразить F(2024)  и F(2023)  через F(2022) , используя правило, представленное в задании, вынести в числителе F(2022)  за скобки и сократить со знаменателем. После этого для получения ответа нужно просто произвести арифметические действия.

F2024+ 2 × F2023F2022=(2023⋅2022+2⋅2022)F(2022)F(2022)=2023⋅2022+2⋅2022

Понятно, что такой способ не всегда будет работать, это зависит от задания. Ученик должен быть знаком с разными приемами решения и уметь для конкретного задания выбрать наилучший способ: самый простой и самый быстрый.

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

Пройдемся по некоторым заданиям, для которых результат выполнения значительно упал по сравнению с 2023 годом. Из группы заданий базового уровня сложности таким заданием оказалось задание 7, проверяющее умение определять объем памяти для хранения графической и звуковой информации. Процент выполнения для него составил 52 %, что хуже прошлогоднего результата на 24 %. Особенностью задания в 2024 году было наличие группировки изображений по пакетам. Основные ошибки, которые допускают ребята в этом задании, связаны с округлением полученных вещественных значений до целых. Это может быть либо округление не в ту сторону, либо использование округления не на том шаге решения. Также к неверному ответу приводит решение задания путем выведения одной общей формулы, в которую потом подставляются числовые значения. При таком решении на нужных шагах округление вообще не выполняется. Рассмотрим пример:

Задание 7. Камера фиксации нарушений правил дорожного движения делает цветные фотографии размером 1024×680 пикселей. При сохранении снимки группируются в пакеты по 100 штук, а затем передаются в центр обработки информации со скоростью передачи данных 1310720 бит/с. Какое минимальное количество цветов используется в палитре, если на передачу одного пакета отводится более 250 секунд? В ответе запишите целое число.

Решение:

  1. Найдем объем информации, переданной по каналу за 250 секунд. Для этого скорость передачи умножим на время передачи. Для исходных данных получим 327680000 бит.
  2. Найдем объем памяти для одной фотографии, разделив объем памяти для пакета на количество фотографий в пакете. Для исходных данных получим 3276800 бит.
  3. Найдем количество бит на один пиксель, разделив объем памяти для одной фотографии на количество пикселей в фотографии. Для указанных данных получим 4706 бит. Далее наступает важный момент, связанный с округлением полученного значения для целого, так количество бит для одного пикселя не может быть дробным значением. В задании сказано, что на передачу одного пакета отводится более 250 секунд. Если мы произведем округление в меньшую сторону, то это будет ошибкой, поскольку время передачи пакета составит менее 250 секунд. Это можно проверить, перемножив глубину цвета, число пикселей, количество фотографий в пакете и разделив полученное значение на скорость передачи. Проверим: 4×1024×680 ×1001 310 720= 212.5   сек., что меньше, чем 250. Поэтому количество бит на пиксель должно быть равно 5. Проверкой убеждаемся, что в этом случае время передачи пакета превышает 250 сек.
  4. Далее необходимо найти минимальное количество цветов в палитре. Здесь опять возникает момент, который может привести к ошибке. Количество цветов c  связано с количеством бит i  под кодирование одного цвета как c2i . При i=5  значение 25=32  будет максимальными количеством цветов, а нам нужно минимальное. Значит, надо взять такое c,  для которого 4 бит уже будет недостаточно. Это значение на 1 больше, чем максимальное количество цветов, для которых число бит равно Получаем ответ 24+1=17 .

Близким к заданию 7 является задание 11 повышенного уровня сложности, проверяющее умение подсчитывать информационный объем сообщения. Для задания 11 также значительно (на 27 %) упал процент выполнения по сравнению с 2023 г. Это задание выполнили правильно только 35 % ребят. Как и в задании 7, типичными ошибками являются ошибки округления: не в ту сторону и/или не на том шаге решения. Выполняя данное задание, необходимо внимательно читать формулировку, поскольку фраза «используется посимвольное кодирование» и отсутствие такой фразы существенным образом меняет ход решения. В первом случае сначала находится значение i  - количество бит на один символ в зависимости от мощности k  кодирующего алфавита. Для этого надо найти такое минимальное значение i,  что 2ik , поскольку каждому из k символов кодирующего алфавита должна быть поставлена в соответствие кодирующая последовательность. То есть при вычислении i  как логарифм от k  необходимо применять округление в большую сторону. Можно себя проверить. Например, для k=20, logk находится в промежутке между 4 и 5. Если мы возьмем i=4,  то получим только 16 различных битовых последовательностей, что недостаточно для 20 различных символов алфавита. Правильным значением будет i=5.  Затем длина l слова (например, пароля) умножается i , в результате получается количество бит на весь пароль. Далее существенным моментом является фраза «для хранения пароля отводится целое число байт», следовательно, на следующем этапе количество бит на весь пароль переводим в байты, деля полученное значение на 8. На этом этапе будет ошибка, если при делении ученик произведет округление в меньшую сторону. Например, пусть на весь пароль понадобилось 70 бит. При делении на 8 получаем 8.75, при этом количество байт должно быть целым значением. Очевидно, что 70 бит не поместится в 8 байт, поскольку 8× 8 = 64.  Правильное значение на этом шаге решения будет 9 байтов, полученное округлением в большую сторону. Следует побуждать учеников выполнять проверочные действия, чтобы убедиться в правильности выбранного округления.

Отсутствие слов «используется посимвольное кодирование» означает, что мы можем использовать в качестве l  значение 1 и вычислить количество бит на данное поле по формуле i=logk , где k  - мощность используемого алфавита, применяя на данном этапе округление в большую сторону, проверяя себя обратным действием, если сомневаемся.

Если в формулировке задания задан объем (в байтах) памяти Vn  для n  объектов и дано значение n , то одним из этапов решения является вычисление объема памяти (в байтах) на один объект по формуле V1=Vnn . Здесь правильным округлением будет округление в меньшую сторону, если сказано, что объем памяти для n  объектов не должен превышать Vn,  и следует применять округление в большую сторону, если сказано, что объем памяти для n  объектов превышает Vn.  Во всех случаях убедиться в правильности полученного ответа можно проверочными действиями.

Значительно (на 24 %) снизился результат для задания 25 высокого уровня сложности, в котором требуется разработать собственную программу для обработки числовой информации, содержащую вложенные циклы. Причиной ухудшения результатов явился тип задания, не похожий на представленный в демонстрационном варианте. Многие ребята ориентировались на демоверсию и оказались неподготовленными к измененной формулировке, использовавшейся несколько лет назад и связанной с подсчетом делителей числа.

Для задания 15 повышенного уровня сложности, относящегося к разделу «Математическая логика», результат выполнения снизился на 15 %. Задание 15 ребята часто решают при помощи программы с использованием переборного алгоритма. При этом, используя заученный шаблон программы, зачастую ребята слабо понимают логику решения. Как следствие, при аналитическом решении качество хромает. Постановка задания из открытого варианта касалась пересечения отрезков на числовой прямой. Такое задание удобно решать аналитически. Наибольшее снижение произошло в группе 61-80, где в основном ребята умеют программировать, по всей видимости, именно этот момент послужил причиной снижения результатов. Натаскивание учащихся на решение типовых задач путем заучивания конкретных схем решения без глубокого понимания их логики – плохая стратегия. Переход к программному способу должен происходить на самом последнем этапе обучения после усвоения аналитических методов решения с четким пониманием логики алгоритма.

При подготовке к компьютерному ЕГЭ по информатике существует несколько разных стратегий как среди преподавателей, так и самих сдающих учеников. Одни делают упор на программирование почти каждой задачи, полностью описывая в коде весь алгоритм решения от ввода исходных данных до вывода окончательного ответа. При выборе такой стратегии делается справедливый акцент на то, что если ты сдаешь экзамен по информатике, то любишь программировать, программирование в будущем станет частью работы, поэтому это очень хорошая тренировка, ну и раз можешь от и до запрограммировать все решение задачи, то это значит, что ты хорошо подготовился. Данный подход может быть востребован у хорошо подготовленных выпускников. Другие преподаватели и учащиеся делают упор на то, чтобы выучить некие «шаблоны» решения задач. Можно согласиться, что почти по каждому заданию такие шаблоны существуют, и, как правило, таких шаблонов ограниченное число. Однако данный подход имеет существенный минус, состоящий в том, что если в условии задачи будет хотя бы небольшое отступление от того же возможного шаблона решения, то задача может оказаться нерешаемой, так как в «базе знаний» ученика способа решения для такого случая может не оказаться. Данный вариант подготовки вполне имеет право на жизнь, но практика показывает, что он подходит только выпускникам, у которых цель перейти порог и набрать относительно небольшое количество баллов.

Наиболее правильный посыл, который следует донести до учеников, следующий: «Вам, как сдающим экзамен, дан компьютер, и вы можете использовать его, чтобы получить ответ на задание. Вы можете лазить по всем возможным папкам, запускать любые программы, которые есть на компьютере, если это как-то будет помогать в решении задачи». Совершенно необязательно всю задачу решать только одним методом или с помощью только одной технологии. Если выпускнику очевидно, что именно эту задачу он может полностью запрограммировать, получив на выходе окончательный ответ, потому что именно эта задача очень похожа на те, которые он решал в очень большом количестве во время подготовки, то почему бы и не сделать именно так. Однако часто бывает правильным после преобразования исходных данных посмотреть на то, что получилось, и задуматься о том, что делать дальше. Возможно, найдется какой-то другой, более простой способ получить окончательный ответ из преобразованных данных. Например, из какого-то очень ограниченного и относительно небольшого набора чисел часто бывает проще получить ответ аналитически по какому-то правилу, чем сначала придумать, а потом написать и отладить программный код для решения задачи, на что может уйти десятки минут. Не надо забывать, что время – это наиболее ценный ресурс во время экзамена. Чем меньше времени затрачено на решение одной задачи, тем больше времени останется на решение всех остальных.

Рассмотрим варианты решения некоторых заданий, где используются комбинация нескольких различных методов или приемов. Проиллюстрируем это принцип для заданий 6, 19-21 и 27.

Задание 6 базового уровня сложности, проверяющее умение определить возможные результаты работы простейших алгоритмов управления, интересен тем, что в какой-то мере способствует небольшой эмоциональной разгрузке на экзамене, потому что там есть возможность посмотреть небольшой «мультфильм», если можно так выразиться. Сюжет задания заключается в том, что исполнителю «Черепаха» дается набор команд, выполнив которые, на выходе получается некоторый набор линий и геометрических фигур, после чего нужно подсчитать либо количество точек с целочисленными координатами, расположенных в определенных местах, либо площадь, образуемую какой-то из конфигураций полученных линий и фигур, либо какую-то другую функцию. Если от начала и до конца решать этот номер чисто программированием или только аналитически, то получается довольно сложная задача. Поэтому обычно сначала выполняется алгоритм для исполнителя при помощи одного из языков программирования или с использованием специальных программ для имитации работы исполнителя, например, Кумир. Во время выполнения этой части как раз и есть возможность посмотреть «мультфильм» -  увидеть пошаговое построение фигуры исполнителем, а заодно немного отдохнуть, пока идет этот процесс. После выполнения первого этапа второй, как правило, становится намного проще и сводится практически к задаче начальной школы: как уже было сказано выше, что-то посчитать – количество точек или площадь, глядя на картинку. Для наглядности рассмотрим конкретный пример.

Задание 6. Исполнитель Черепаха действует на плоскости с декартовой системой координат. В начальный момент Черепаха находится в начале координат, ее голова направлена вдоль положительного направления оси абсцисс, хвост опущен. При опущенном хвосте Черепаха оставляет на поле след в виде линии. В каждый конкретный момент известно положение исполнителя и направление его движения. У исполнителя существует две команды: Вперёд n (где nцелое число), вызывающая передвижение Черепахи на n единиц в том направлении, куда указывает ее голова, и Направо m (где m – целое число), вызывающая изменение направления движения на m градусов по часовой стрелке. Запись

Повтори k [Команда1 Команда2 … Команда S]

означает, что последовательность из S команд повторится k раз. Черепахе был дан для исполнения следующий алгоритм:

Повтори 4 [Повтори 3 [Вперед 2 Направо 270] Вперед 5]

Найдите сумму площадей замкнутых фрагментов фигуры.

Первый этап решения этой задачи выполним в среде программирования python.

import turtle as t # подключение библиотеки рисования черепахой

k=20 # коэффициент для масштабирования получающегося изображения

for i in range(4): # Повтори 4

for j in range(3): # Повтори 3

t.forward(2*k) # Вперед 2

t.right(270) # Направо 270

Рис.1

t.forward(5*k) # Вперед 5

 

После выполнения данной программы получается изображение как на рис. 1. Если проанализировать программу и сравнить ее код с полученным изображением, а также наблюдая сам процесс его создания, то мы увидим, что старт и финиш находятся в одной точке (здесь это черная стрелка-треугольник возле верхнего правого угла большого квадрата). Внутренний цикл for j in range(3) чертит три стороны маленького квадрата с длиной стороны 2 (для верхнего правого квадрата это его нижняя, правая и верхняя стороны). После этого выполняется команда t.forward(5*k), которая прорисовывает оставшуюся сторону маленького квадрата (2 единицы) и прорисовывает одну линию большого квадрата (на первой итерации это правая сторона большого квадрата, ее длина составит 3  единицы, так как 2  из 5  ушло на оставшуюся сторону маленького квадрата). Цикл for i in range(4) повторит весь этот процесс 4 раза, начертив четыре подобные части. Подытожив, получаем, что так как сторона маленького квадрата равна 2 единицы, то его площадь будет 4 кв. единицы, сторона большого квадрата равна 3 единицы, его площадь составит 9 кв. единиц. Итого сумма площадей 4 маленьких квадратов и большого дадут итоговый ответ 4×4+9=25.

Следует отметить, что на экзамене одной из причин ошибок для задания 6 является невнимательное чтение условия. При анализе выполнения открытого варианта 2024 года выяснилось, что 14 % ребят получили неверный ответ, так как считали не периметр, как требовалось в задании, а количество точек с целочисленными координатами на границе, некоторые ребята считали площадь.

Рассмотрим интересный способ для решения сразу трех номеров 19, 20, 21, проверяющих умение анализировать алгоритм логический игры и строить выигрышную стратегию. Если в общих чертах, то суть этих задач следующая: играют двое игроков, для 19 номера нужно проанализировать варианты ходов второго игрока после хода первого, для 20 – сделать анализ игры на шаг дальше – ход первого, ход второго и еще раз ход первого, для 21 – еще на шаг дальше – ход первого игрока, ход второго, потом ход первого и еще раз ход второго.

Существуют разные способы решения данных задач: либо все сделать аналитически на бумаге, решая много уравнений и неравенств, либо написать программу, в которой применяется технология рекурсии. Обоими этими методами относительно легко получается ответ для номера 19, но далее с увеличением глубины игры сложность вычислений возрастает, нужно очень внимательно нужно следить за каждой цифрой и знаком в формулах и расчетах. Покажем, как решать данные задания с использованием электронных таблиц. Его парадоксальная особенность в том, что при этом методе наибольшую математическую сложность вызывает только написание формул для решения 19 номера. А еще уникальность данного метода состоит в том, что в процессе поиска ответа особо не нужно всматриваться и вдумываться в получающиеся числа. Это достигается за счет того, что отдельные клетки таблицы окрашиваются по условию в разные цвета. И после первого этапа написания формул и условий идет второй, когда «играясь» с потенциальным ответом всего лишь в одной клетке, происходит каждый раз автоматическое перераскрашивание таблицы, ученику остается лишь наблюдать за сочетанием закрашенных клеток и выбрать нужный вариант, увидев определенное сочетание цветов.

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

Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежат две кучи камней. Игроки ходят по очереди, первый ход делает Петя. За один ход игрок может добавить в одну из куч (по своему выбору) один камень или увеличить количество камней в куче в два раза. Игра завершается в тот момент, когда суммарное количество камней в кучах становится не менее 77 . Победителем считается игрок, сделавший последний ход, т. е. первый получивший такую позицию, при которой в кучах будет 77  или больше камней. В начальный момент в первой куче было семь камней, во второй куче – S  камней; 1S69.

Рис.2

Задание 19. Известно, что Ваня выиграл своим первым ходом после неудачного первого хода Пети. Укажите минимальное значение S, когда такая ситуация возможна.

 

Здесь сильно поможет следующая любопытная информация. Во всех задачах, как правило, первым ходит игрок с именем на букву «П» (здесь это Петя), а вторым ходит игрок с именем на букву «В» (здесь это Ваня). Конкретно в этой задаче у каждого из игроков есть 4 варианта развития событий (которые считаются через формулы в ячейках C3:D6 таблицы): он может 1) добавить в первую кучу 1 камень =A3+1, вторую оставить без изменения = B3, 2) первую кучу увеличить в два раза = A3*2, вторую оставить без изменения = B3, 3) первую кучу оставить без изменения = A3, ко второй куче добавить один камень = B3+1, 4) первую кучу оставить без изменения = A3, вторую кучу увеличить в два раза = B3*2. Эти формулы зафиксируем в таблице. Во всех этих формулах предполагается, что до начала игры исходное количество камней первой кучи было в ячейке A3 (здесь по условию это число 7), второй кучи (S) – в ячейке B3 (здесь это число 69, которое пока взято наугад) (рис. 2).

Сейчас у нас ситуация после первого хода Пети. Следующий ход Вани – решающий. Так как он имеет выигрышную стратегию, то ему для каждого хода Пети достаточно показать его лучший ход. Если у него есть шанс выиграть, то очевидно, что при данном условии задачи ему нужно увеличить в 2 раза кучу, в которой больше камней. В столбце E будем записывать сумму камней в обоих кучах после хода Вани, ответного на ход Пети. Для ячейки E3 формула будет выглядеть = МАКС(C3:D3)*2+МИН(C3:D3). По условию задачи Ваня выигрывает, если у него общее количество камней будет 77 или больше. Поэтому к ячейке, куда только что записали формулу, применим условное форматирование, окрасив ее в зеленый цвет при достижении указанного значения (см. рис. 3).

Рис.3

 

Скопируем содержимое этой ячейки E3 на остальные варианты ходов в E4, E5, E6.

Рис.4

Но если Петя первым ходом уже наберет 77 камней, то ответный ход Вани становится бессмысленным. Поэтому в столбце F будем отображать сумму камней после хода Пети формулой =C3+D3 (для ячейки F3), закрасим условным форматированием при достижении 77 в красный цвет как свидетельство того, что Ваня здесь не выигрывает. Скопируем эту ячейку в F4, F5, F6 (рис. 4.).

 

Самая трудоемкая часть окончена, переходим ко второй – поиску ответа. Для этого будем вручную изменять содержимое ячейки B3. В условии 19 номера просят найти минимальное значение S, чтобы выиграл Ваня после неудачного хода Пети. Это значит, что нам нужно подобрать такое значение S, когда горит хотя бы одна зеленая ячейка и не горят красные, при этом нужно подобрать самое маленькое S. В этой задаче ответ 18.

Перед переходом к решению номера 20 подготовим еще кое-что. В ячейку A5 запишем формулу для суммы камней первоначальной позиции=A3+B3 и закрасим ее по условию в зеленый цвет. Помимо этого, для удобства отображения выделим диапазон A3:F6 и сперва создадим для всех ячеек этого диапазона границы между всеми ячейками, а потом толстую внешнюю границу для всего диапазона.

Задание 20. Найдите два таких значения S, при которых у Пети есть выигрышная стратегия, причем одновременно выполняются два условия:

− Петя не может выиграть за один ход;

− Петя может выиграть своим вторым ходом независимо от того, как будет ходить Ваня.

Найденные значения запишите в ответе в порядке возрастания.

Рис.6

Скопируем диапазон A2:B3 и вставим в A10. Затем скопируем диапазон, ограниченный толстой линией, и вставим в C11, C15, C19, C23. Теперь здесь столбцы A и B – начальное количество камней в кучах, С и D – 1 и 2 кучи Пети, E и F – 1 и 2 кучи после хода Вани, G – сумма камней после ответного хода Пети, H – сумма камней после хода Вани. Последний подготовительный момент – нужно заново написать формулы для первого хода в столбцах C и D в строках 11, 15, 19, 23. Если все сделано верно, то при начальном S, равном 69, должно получиться как на рис.6.

 

Что мы здесь видим? Каждый блок с толстыми границами показывает развитие игры для каждого варианта первого хода Пети. Фраза «Петя имеет выигрышную стратегию» означает, что он достаточно умный, хорошо наперед просчитывает ходы, поэтому при выборе вариантов он изначально пойдет в том направлении, где предполагается выигрыш. Фраза «Петя не может выиграть за один ход» обозначает, что в столбце С не будет ни одной зеленой ячейки, так как суммарно у него на этот момент должно быть меньше 77. Выигрыш Пети вторым ходом обозначает, что на каждый невыигрышный ход Вани у него есть выигрышный ход. Это значит, что внутри блока с толстыми границами в столбце G должны быть все 4 ячейки зеленые, и при этом в столбце H не должно быть ни одной красной клетки во всех 4 строках.

Для данной задачи подходят значения S: 31 (выигрыш во втором блоке) и 34 (выигрыш в первом блоке) (см. рис. 7).

Рис.7

 

 

Для подготовки к 21 номеру толстой границей выделим диапазон A11:H26.

Задание 21 Найдите минимальное значение S, при котором одновременно выполняются два условия:

– у Вани есть выигрышная стратегия, позволяющая ему выиграть первым или вторым ходом при любой игре Пети;

– у Вани нет стратегии, которая позволит ему гарантированно выиграть первым ходом

По аналогии с предыдущим номером подготовим ячейки таблицы. Для этого для начальной позиции скопируем диапазон A10:B11 и вставим в A30. Скопируем то, что перед этим было выделено толстыми границами, и вставим 4 раза в ячейки C31, C48, L31, L48. Как и в номере 20, необходимо записать заново формулы для первого хода Пети. Если все сделано верно, то должна будет получиться четыре больших блока как на рисунке для S=34.

Рис.8

 

 

 

 

 

 

 

 

 

 

Фраза «у Вани есть выигрышная стратегия, позволяющая ему выиграть первым или вторым ходом при любой игре Пети» означает, что зеленая ячейка может быть как в столбцах E, N, так и в столбцах I, R. При этом фраза «у Вани нет стратегии, которая позволит ему гарантированно выиграть первым ходом» означает, что на первом ходе Ваня может выиграть, но он не должен выиграть первым ходом в каждом блоке, то есть в каком-то из больших блоков совсем не должно быть зеленых ячеек в столбцах E или N.

Первый ходит Петя, но выигрышная стратегия есть у Вани. Это означает, что Ваня не может контролировать варианты ходов Пети, который может пойти, как угодно. Поэтому Ваня должен выиграть в каждом большом блоке первым или вторым ходом. Таким образом, нужно искать, чтобы зеленая ячейка была в столбцах E или N, а если ее там нет, то по аналогии с номером 20 должен быть блок из 4 зеленых ячеек с отсутствием справа от них красных.

Рис.9

В данной задаче путем подбора находим, что ответ будет 30. Те блоки, которые нужно увидеть, на рис. 9 обозначены красными стрелками.

 

Перейдем к рассмотрению задания 27 высокого уровня сложности, которое является новым в 2025 году. За решение этого задания можно получить до двух первичных баллов. Как правило, в этом задании дается два набора данных (два входных файла) – один относительно небольшой, другой – файл с очень большим количеством данных. Ответ для небольшого файла легко получить переборным алгоритмом, но вот для большого это уже совсем нетривиальная задача, приходится придумывать оригинальные решения или сочетать разные методы. В этом году в рамках экзамена предлагается задача с названием «Кластерный анализ», проверяющая умение выполнять последовательность задач по анализу данных: сбор первичных данных, очистка и оценка качества данных, выбор и построение модели, преобразование данных, визуализация данных, интерпретация результатов. К примеру, файлы с данными могут представлять собой наборы координат неких объектов на плоскости, в качестве ответа необходимо указать некую числовую характеристику, полученную после анализа особенностей группировки этих объектов. Как правило, описываемые объекты образуют кластеры. Во время решения необходимо определить их геометрию, например, координаты центра, вычисляемые по определенному правилу. Если писать только программу, то задача хоть и решаемая, но для перебора всех точек потребуется или очень много времени (в зависимости от объема данных это могут быть как часы, так и дни), или нужно будет придумать очень оригинальный быстрый алгоритм. Хорошим решением является сочетание методов: на первом этапе по заданным координатам в электронной таблице построить точечную диаграмму, визуально оценить параметры расположения, а уже потом на втором этапе писать программу для обработки отдельных кластеров, когда количество обрабатываемых точек будет в разы меньше для каждого объекта.

Рассмотрим решение задачи, которая представлена в демоверсии.

Рис.10

Задание 27. Ученый решил провести кластеризацию некоторого множества звезд по их расположению на карте звездного неба. Кластер звезд – это набор звезд (точек) на графике, лежащий внутри прямоугольника высотой H  и шириной W . Каждая звезда обязательно принадлежит только одному из кластеров.

 

Истинный центр кластера, или центроид, – это одна из звёед на графике, сумма расстояний от которой до всех остальных звезд кластера минимальна. Под расстоянием понимается расстояние Евклида между двумя точками A(x1, y1)  и B(x2, y2)  на плоскости, которое вычисляется по формуле: .

Рис. 11

Входные данные. В файле A хранятся данные о звездах двух кластеров, где H=3, W=3  для каждого кластера. В каждой строке записана информация о расположении на карте одной звезды: сначала координата x , затем координата y . Значения даны в условных единицах. Известно, что количество звезд не превышает 1000. В файле Б хранятся данные о звездах трех кластеров, где H=3, W=3  для каждого кластера. Известно, что количество звезд не превышает 10 000. Структура хранения информации о звездах в файле Б аналогична файлу А.

 

Для каждого файла определите координаты центра каждого кластера, затем вычислите два числа: Px  – среднее арифметическое абсцисс центров кластеров, и Py  – среднее арифметическое ординат центров кластеров.

Выходные данные. В ответе запишите четыре числа: в первой строке сначала целую часть произведения Px × 10000 , затем целую часть произведения Py × 10000  для файла А, во второй строке – аналогичные данные для файла Б. Возможные данные одного из файлов иллюстрированы графиком (рис.10).

Рис.12

 Решение нужно выполнить для файла А и файла Б. Здесь приведем разбор для файла А, так как для другого все будет аналогично.

 

Опишем ход решения. Сначала откроем предложенный файл для электронной таблицы и там построим точечную диаграмму (рис. 11). Хорошо видно, что точки сгруппированы в два кластера. При этом четко видны границы: точки обоих кластеров не уходят дальше линий x=1  и y=3.  Воспользуемся этим свойством. Отсортируем исходную таблицу (рис. 12), например, по первому столбцу (это X). После этого строки верхней части, где x<1 , перепишем в один файл ``1.csv’’, а строки, где x>1 , перепишем в другой файл ``2.csv’’.

На втором этапе решения необходимо на языке программирования написать функцию, которая будет искать центр одного конкретного кластера, все числа которого расположены в отдельном файле. Эта функция будет представлять собой переборное решение, где от каждой точки будет вычисляться сумма расстояний до остальных точек кластера. Среди всех найденных сумм надо выбрать минимальную. Та точка, для которой будет достигаться минимум, и будет тем самым центроидом. Ниже представлен текст решения.

def k(fl):

f=open(fl).read().split() # открытие файла

# далее идет преобразование в удобный для обработки формат

a=[]

for i in f:

i=i.split(';')

a.append((float(i[0]),float(i[1])))

# далее идёт поиск точки с минимальной суммой

m=1000000

for i in range(len(a)):

s=0

for j in range(len(a)):

s+=((a[i][0]-a[j][0])**2+(a[i][1]-a[j][1])**2)**0.5

if s

m=s

t=a[i]

return t # возвращается кортеж с координатами найденной точки

t1=k('1.csv')

t2=k('2.csv')

Px=int((t1[0]+t2[0])/2*10000)

Py=int((t1[1]+t2[1])/2*10000)

print(Px,Py)

Данная программа в качестве ответа выдает числа 10738 и 30730.

Если подытожить все вышеописанные примеры, можно констатировать, что для упрощения процесса решения задач не обязательно сочинять какой-то универсальный способ, а достаточно воспользоваться уже вполне известными технологиями. А иногда безо всяких вычислений достаточно посмотреть на внешний вид того, что получается, а уже исходя из этого решать задачу для данного конкретного частного случая.

Язмага реакция белдерегез

0

0

0

0

0

Реакция язылган инде

Комментарийлар

В Национальной библиотеке казанцам расскажут о фотонике и экологичном бизнесе

В Национальной библиотеки РТ пройдут лектории.

В Национальной библиотеке казанцам расскажут о фотонике и экологичном бизнесе

13 марта в 19:00 состоится разговорный клуб татарского языка под кураторством хористов кружка «Тәти Түгәрәк».

В это же время в библиотеке пройдет дискуссия «Зеленый бизнес в Казани: Возможно ли построить прибыльное дело на вторсырье».

15 марта в 15:00 казанцев ждут на лекции «Фотоника – драйвер прогресса современного мира». Доктор технических наук, заведующий кафедрой радиофотоники и микроволновых технологий КНИТУ-КАИ Артем Кузнецов расскажет, почему исследователи всего мира называют XXI столетие веком фотоники, какие задачи способны решить оптические технологии сегодня и в ближайшей перспективе, и как это повлияет на привычную нам картину мира.

Вход на мероприятия свободный, но необходима предварительная регистрация.

Фото: Денис Гордийко

Следите за самым важным и интересным в Telegram-каналеТатмедиа

Яңалыклар битенә керегез

Новости

БАШКА ЯЗМАЛАР

Это интересно

Аудиозаписи

  • Гильм Камай

  • Җәлилнең якын дусты

  • Ирек Нигъмәти - "Кояш сүнде ул йортта"

  • Ләйлә Минһаҗева - "Милләтебезгә тугры, буыннарга үрнәк шәхес"


РЕКОМЕНДУЕМ