(№ 4127) (А. Богданов) Исполнитель Редактор получает на вход строку цифр и преобразовывает её. Редактор может выполнять две команды, в обеих командах v и w обозначают цепочки символов.
1. заменить (v, w) 2. нашлось (v) |
Первая команда заменяет в строке первое слева вхождение цепочки v на цепочку w. Если цепочки v в строке нет, эта команда не изменяет строку. Вторая команда проверяет, встречается ли цепочка v в строке исполнителя Редактор.
Дана программа для исполнителя Редактор:
ПОКА нашлось(43) ИЛИ нашлось(53) ЕСЛИ нашлось(43) ТО заменить(43, 33) ИНАЧЕ заменить(53, 433) КОНЕЦ ПОКА |
Определите максимально возможное количество цифр 3, которое может получиться в результате применения этой программы к строке, состоящей из 17 цифр «3», 23 цифр «4» и 29 цифр «5», идущих в произвольном порядке.
Решение:
Максимально возможное количество цифр 3 может получиться в результате применения программы к строке, состоящей из 17 цифр «3», 23 цифр «4» и 29 цифр «5», идущих в произвольном порядке, только в том случае, когда программа осуществит максимальное число замен:
- «43» на «33» и
- «53» на «433».
А это возможно только в том случае, когда все цифры будут расположены попарно определенным образом (учтите, что замена происходит только тогда, когда цифра «3» стоит после цифры «4» или после цифры «5»).
Давайте рассмотрим некоторые возможные варианты:
Вариант 1:
Вариант 2 (максимальное количество цифр «3»):
Решение на Pyton:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
«Зададим исходную строку рациональным образом» s = ‘5’ * 12 + ‘4’ * 23 + ’53’ * 17 «Зададим цикл перебора и замены значений в соответствии с условиями задачи» while (’43’ in s) or (’53’ in s): if (’43’ in s): s = s.replace(’43’, ’33’, 1) print(s) else: s = s.replace(’53’, ‘433’, 1) print(s) «Посчитаем количество цифр 3» n = 0 for i in range(0,len(s)): if s[i] == ‘3’: n = n + 1 print(«Количество цифр 3 в строке: «, n) |
В решение заданий демо-версии используется язык программирования Python.
Задание 1. Анализ информационных моделей На рисунке схема дорог Н-ского района изображена в виде графа, в таблице содержатся сведения о протяжённости каждой из этих дорог (в километрах). Так как таблицу и схему рисовали независимо друг от друга, то нумерация населённых пунктов в таблице никак не связана с буквенными обозначениями на графе. Определите, какова сумма протяжённостей дорог из пункта D в пункт В и из пункта F в пункт A. В ответе запишите целое число. |
На графе расставим веса вершин. Далее 2 и 7 вершины ведут нас к 5, значит А это 5, оставшаяся «тройка» это вершина Е под номером 6. Сумма дорог BD + AF = 53 + 5 = 58
Ответ: 58 |
||||||||||||||||||
Задание 2. Построение таблиц истинности логических выражений Миша заполнял таблицу истинности логической функции F F= ¬(y → x) v (z→ w) v ¬z , но успел заполнить лишь фрагмент из трёх различных её строк, даже не указав, какому столбцу таблицы соответствует каждая из переменных w, x, y, z. Определите, какому столбцу таблицы соответствует каждая из переменных w, x, y, z. В ответе напишите буквы w, x, y, z в том порядке, в котором идут соответствующие им столбцы (сначала буква, соответствующая первому столбцу; затем буква, соответствующая второму столбцу, и т.д.). Буквы в ответе пишите подряд, никаких разделителей между буквами ставить не нужно. Пример. Функция задана выражением ¬x v y, зависящим от двух переменных, а фрагмент таблицы имеет следующий вид. В этом случае первому столбцу соответствует переменная y, а второму столбцу – переменная x. В ответе следует написать yx. |
¬(y → x) v (z→ w) v ¬z=0. Следовательно y → x =1, z→ w=0, z=1. Значит третий столбец z. z→ w=0, значит w=0, и это может быть только 4 столбец. y → x =1, следовательно из второй строки мы видим, что первый столбец может быть только у, а второй х.
Решение на Python
Ответ: YXZW |
||||||||||||||||||
Задание 3. Базы данных. Файловая система В прикрепленном файле приведён фрагмент базы данных «Продукты» о поставках товаров в магазины районов города. База данных состоит из трёх таблиц. Таблица «Движение товаров» содержит записи о поставках товаров в На рисунке приведена схема указанной базы данных. Используя информацию из приведённой базы данных, определите общий вес |
На третьем листе книги применим фильтр по району и получим ID четырех магазинов. На втором листе применим фильтр по товару и получим ID товара. На первом листе применим фильтры по ID товара и ID магазинов и типу операции. Все даты попадают в интервал от 1 до 8 июня. Получим: Поступило в продажу 710 упаковок. В упаковке 0,5 кг. Получим 355 кг. Ответ: 355 |
||||||||||||||||||
Задание 4. Кодирование и декодирование информации По каналу связи передаются сообщения, содержащие только буквы из набора: А, З, К, Н, Ч. Для передачи используется двоичный код,удовлетворяющий прямому условию Фано, согласно которому никакое кодовое слово не является началом другого кодового слова. Это условие обеспечивает возможность однозначной расшифровки закодированных сообщений. Кодовые слова для некоторых букв известны: Н – 1111, З – 110. Для трёх оставшихся букв А, К и Ч кодовые слова неизвестны. Какое количество двоичных знаков потребуется для кодирования слова КАЗАЧКА, если известно, что оно закодировано минимально возможным количеством двоичных знаков? |
Ответ: 14 |
||||||||||||||||||
Задание 5. Анализ и построение алгоритмов для исполнителей На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему 1. Строится двоичная запись числа N. Полученная таким образом запись является двоичной записью искомого числа R.Например, для исходного числа 610 = 1102 результатом является число |
Минимальное R, большее 40, это 41.
ИЛИ программное решение
Ответ: 16
|
||||||||||||||||||
Задание 6. Определение результатов работы простейших алгоритмов Исполнитель Черепаха действует на плоскости с декартовой системой координат. Черепахе был дан для исполнения следующий алгоритм: Исполнитель Черепаха действует на плоскости с декартовой системой координат. В начальный момент Черепаха находится в начале координат, её голова направлена вдоль положительного направления оси ординат, хвост опущен. При опущенном хвосте Черепаха оставляет на поле след в виде линии. В каждый конкретный момент известно положение исполнителя и направление его движения. У исполнителя существует 5 команд: Поднять хвост, означающая переход к перемещению без рисования; Опустить хвост, означающая переход в режим рисования; Вперёд n (где n– целое число), вызывающая передвижение Черепахи на n единиц в том направлении, куда указывает её голова; Назад n (где n– целое число), вызывающая передвижение в противоположном голове направлении; Направо m (где m – целое число), вызывающая изменение направления движения на m градусов по часовой стрелке, Налево m (где m– целое число), вызывающая изменение направления движения на m градусов против часовой стрелки. Запись Повтори k [Команда1 Команда2 … КомандаS] означает, что последовательность из S команд повторится k раз. Черепахе был дан для исполнения следующий алгоритм: Определите, сколько точек с целочисленными координатами будут находиться внутри пересечения фигур, ограниченных заданными алгоритмом линиями, включая точки на границах этого пересечения. |
Сначала нужно построить фигуру.
Далее мы находим уравнения прямых, которыми ограничена фигура и решаем ИЛИ Ответ: 1 задание — 38, 2 задание — 128 |
||||||||||||||||||
Задание 7. Кодирование и декодирование информации. Передача информации Музыкальный фрагмент был записан в формате моно, оцифрован и сохранён в виде файла без использования сжатия данных. Размер полученного файла – 28 Мбайт. Затем тот же музыкальный фрагмент был записан повторно в формате стерео (двухканальная запись) и оцифрован с разрешением в 3,5 раза выше и частотой дискретизации в 2 раза меньше, чем в первый раз. Сжатие данных не производилось. Укажите размер полученного при повторной записи файла в Мбайт. В ответе запишите только целое число, единицу измерения писать не нужно. |
I = ν ⋅ i ⋅ t ⋅ k, где ν — частота дискретизации (Гц), i — разрешение (бит), t — время (с), k — количество дорожек (1 -моно, 2- стерео, 4 — квадро) I1 = ν ⋅ i ⋅ t I2 = 3,5 · 28 = 98 Ответ: 98 |
||||||||||||||||||
Задание 8. Перебор слов и системы счисления Определите количество пятизначных чисел, записанных в восьмеричной системе счисления, в записи которых только одна цифра 6, при этом никакая нечётная цифра не стоит рядом с цифрой 6. |
* * * * * — пятизначное число. 6 * * * * — вариантов 3 ⋅ 7 ⋅ 7 ⋅ 7 = 1029 Ответ: 2961 |
||||||||||||||||||
Задание 9. Работа с таблицами Файл с данными Откройте файл электронной таблицы, содержащей в каждой строке шесть натуральных чисел. Определите количество строк таблицы, содержащих числа, для которых выполнены оба условия: |
Для решения этой задачи понадобится 10 вспомогательных столбцов. Сначала мы посчитаем количество повторяющихся чисел в каждой строке. Затем сумму каждой строки диапазона H:M. Если повторений нет, то эта сумма равна 6. Далее мы найдем среднее арифметическое неповторяющихся значений. Затем найдем сумму повторяющихся значений. Затем проверим соблюдение двух условий. И подсчитаем количество строк, в которых соблюдаются оба условия. Ответ: 2241 |
||||||||||||||||||
Задание 10. Поиск символов в текстовом редакторе Файл с данными Текст произведения Льва Николаевича Толстого «Севастопольские рассказы» представлен в виде файлов различных форматов. Откройте один из файлов и определите, сколько раз встречается в тексте отдельное слово «теперь» со строчной буквы. Другие формы этого слова учитывать не следует. |
В текстовом редакторе используем инструмент найти (по умолчанию он не учитывает регистр, в расширенном поиске есть кнопка больше, где можно проверить настройки). Ищем слово целиком. Ставим галочку учитывать регистр. Слово теперь со строчной буквы встречается 45 раз. Ответ: 45 |
||||||||||||||||||
Задание 11. Вычисление количества информации При регистрации в компьютерной системе каждому объекту присваивается идентификатор, состоящий из 250 символов и содержащий только десятичные цифры и символы из 1650-символьного специального алфавита. В базе данных для хранения каждого идентификатора отведено одинаковое и минимально возможное целое число байт. При этом используется посимвольное кодирование идентификаторов, все символы кодируются одинаковым и минимально возможным количеством бит. Определите объём памяти (в Кбайт), необходимый для хранения 65 536 идентификаторов. В ответе запишите только целое число – количество Кбайт. |
I = K · i, N = 2 i ID : ****….**** – всего 250 различных символов в наборе N = 10 + 1650 = 1660, 1024<1660<2048, 2048 = 211, значит для кодирования одного символа нужно 11 бит. IID = 250 · 11 = 2750 бит = 343,75 байт ≈ 344 байт – отводится на идентификатор целое число байт I65536 = 65536 ⋅ 344 = 22544384 байта = 22016 Кбайт– всего Ответ: 22016 |
||||||||||||||||||
Задание 12. Выполнение алгоритмов для исполнителей Исполнитель Редактор получает на вход строку цифр и преобразовывает её. Редактор может выполнять две команды, в обеих командах v и w обозначают цепочки цифр. А) заменить (v, w). Эта команда заменяет в строке первое слева вхождение цепочки v на цепочку w. Б) нашлось (v). Эта команда проверяет, встречается ли цепочка v в строке исполнителя Редактор. Если она встречается, то команда возвращает логическое значение «истина», в противном случае возвращает значение «ложь». Строка исполнителя при этом не изменяется. Цикл выполняется, пока условие истинно. В конструкции ЕСЛИ условие выполняется команда 1 (если условие истинно). В конструкции ЕСЛИ условие выполняется команда 1 (если условие истинно) или команда 2 (если условие ложно). Дана программа для Редактора: |
def pr(n): #функция определяет простое ли число for n in range(100): #перебираем n if ‘>2’ in s: if ‘>0’ in s: sum_s = 0 Ответ: 5 |
||||||||||||||||||
Задание 13. Поиск путей в графе На рисунке представлена схема дорог, связывающих города А, Б, В, Г, Д, Е, Ж, И, К, Л. По каждой дороге можно двигаться только в одном направлении, указанном стрелкой. |
Начнем подсчет из вершины Е налево через В и возвращаемся в Е через Л.
Ответ: 21 |
||||||||||||||||||
Задание 14. Кодирование чисел. Системы счисления Операнды арифметического выражения записаны в системе счисления с основанием 15. |
for x in range(15): if n%14 == 0: Ответ: 8767 |
||||||||||||||||||
Задание 15. Преобразование логических выражений На числовой прямой даны два отрезка: D = [17; 58] и C = [29; 80]. Укажите наименьшую возможную длину такого отрезка A, для которого логическое выражение |
def deli(n,m): for A in range(1,1000): if Ok: Ответ: 94 |
||||||||||||||||||
Задание 16. Рекурсивные алгоритмы Алгоритм вычисления значения функции F(n), где n – натуральное число, |
F(2023) = 2023! = 2023 ⋅ 2022! F(2023)/F(2020) = (2023 ⋅ 2022 ⋅ 2021 ⋅ 2020!)/2020! = 2023 ⋅ 2022 ⋅ 2021 = = 8266912626 Ответ: 8266912626 |
||||||||||||||||||
Задание 17. Проверка на делимость Файл с данными В файле содержится последовательность целых чисел. Элементы последовательности могут принимать целые значения от –10 000 до 10 000 включительно. Определите количество пар последовательности, в которых |
f= open(’17.txt’) k = 0 for i in p: for i in range(1,len(p)): #Осторожно, скобки! print(k,PP) Ответ: 180 190360573 |
||||||||||||||||||
Задание 18. Робот-сборщик монет Файл с данными Квадрат разлинован на N×N клеток (1 < N < 17). Исполнитель Робот может перемещаться по клеткам, выполняя за одно перемещение одну из двух команд: вправо или вниз. По команде вправо Робот перемещается в соседнюю правую клетку, по команде вниз — в соседнюю нижнюю. При попытке выхода за границу квадрата Робот разрушается. Перед каждым запуском Робота в каждой клетке квадрата лежит монета достоинством от 1 до 100. Посетив клетку, Робот забирает монету с собой; это также относится к начальной и конечной клетке маршрута Робота. Откройте файл. Определите максимальную и минимальную денежную сумму, которую может собрать Робот, пройдя из левой верхней клетки в правую нижнюю. В ответ запишите два числа друг за другом без разделительных знаков — сначала максимальную сумму, затем минимальную. Исходные данные представляют собой электронную таблицу размером N×N, каждая ячейка которой соответствует клетке квадрата.Пример входных данных:
Для указанных входных данных ответом должна быть пара чисел 41 и 22. |
Сначала скопируем таблицу рядом, начиная со столбца АА, можно уменьшить ширину столбца до 4-5. Ячейка АА1=А1. Ячейка АВ1 = АА1+В1, протягиваем ее до АТ1. Ячейка АА2 = АА1 + А2, протягиваем ее до АА20. Далее ячейка АВ2 = В2+МАКС(АА2;АВ1), протягиваем ее на весь оставшийся диапазон, копируем только значения, не трогая стен.
Справа от стен формулы повторяют крайний левый рял, столбец АА, снизу от стен формулы копируют верхнюю строку 1. Далее делаем замену всех формул МАКС на МИН. Ответ: 1099 1026 |
||||||||||||||||||
Задание 19. Выигрышная стратегия. Задание 1 Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежит куча камней. Игроки ходят по очереди, первый ход делает Петя. За один ход игрок может добавить в кучу один камень или увеличить количество камней в куче в два раза. Для того чтобы делать ходы, у каждого игрока есть неограниченное количество камней. Игра завершается в тот момент, когда количество камней в куче становится не менее 129. Победителем считается игрок, сделавший последний ход, т.е. первым получивший кучу из 129 или больше камней. В начальный момент в куче было S камней, 1 ≤ S ≤ 128. Будем говорить, что игрок имеет выигрышную стратегию, если он может выиграть при любых ходах противника. Укажите такое значение S, при котором Петя не может выиграть за один ход, но при любом ходе Пети Ваня может выиграть своим первым ходом. |
При значениях S < 64 у Пети есть возможность сделать такой ход, что Ваня не сможет выиграть своим первым ходом. При значении S = 64 Петя своим первым ходом может получить 65 или 128 камней в куче. Во всех случаях Ваня увеличивает количество камней в куче в два раза и выигрывает своим первым ходом. Ответ: 64 |
||||||||||||||||||
Задание 20. Выигрышная стратегия. Задание 2 Для игры, описанной в задании 19, найдите два таких значения S, при которых у Пети есть выигрышная стратегия, причем одновременно выполняются два условия:
Найденные значения запишите в порядке возрастания. |
Значение S должно быть меньше 64, поскольку иначе Ваня сможет выиграть своим первым ходом.
Ответ: 32 63 |
||||||||||||||||||
Задание 21. Выигрышная стратегия. Задание 3 Для игры, описанной в задании 19, найдите значение S, при котором одновременно выполняются два условия:
Если найдено несколько значений S, в ответе запишите минимальное из них. |
Ответ: 62 |
||||||||||||||||||
Задание 22. Многопроцессорные системы В файле содержится информация о совокупности N вычислительных процессов, которые могут выполняться параллельно или последовательно. Будем говорить, что процесс B зависит от процесса A, если для выполнения процесса B необходимы результаты выполнения процесса A. В этом случае процессы могут выполняться только последовательно. Определите минимальное время, через которое завершится выполнение всей совокупности процессов, при условии, что все независимые друг от друга процессы могут выполняться параллельно. |
В независимых процессах время считается от 0,
Ответ: 17 |
||||||||||||||||||
Задание 23. Анализ программы с циклами и условными операторами Исполнитель преобразует число на экране. |
def f(x, y): print (f(1,10) * f(10, 35)) Ответ: 98 |
||||||||||||||||||
Задание 24. Анализ программы с циклами и условными операторами Файл с данными Текстовый файл состоит из символов A, C, D, F и O. Определите максимальное количество идущих подряд пар символов вида согласная + гласная |
f=open(’24.txt’) PP = [‘CA’, ‘CO’, ‘DA’, ‘DO’, ‘FA’, ‘FO’] for i in range(1, len(p), 2): Ответ: 95 |
||||||||||||||||||
Задание 25. Анализ программы с циклами и условными операторами Назовём маской числа последовательность цифр, в которой также могут Например, маске 123*4?5 соответствуют числа 123405 и 12300405. Среди натуральных чисел, не превышающих 1010, найдите все числа, соответствующие маске 1?2139*4, делящиеся на 2023 без остатка. |
Самый простой способ использовать библиотеку fnmatch. или так полным перебором: y = {»,’0′,’00’,’000′} for x in range (1000): Ответ: 162139404 80148 |
||||||||||||||||||
Задание 26. Анализ программы с циклами и условными операторами В магазине для упаковки подарков есть N кубических коробок. Самой интересной считается упаковка подарка по принципу матрёшки – подарок упаковывается в одну из коробок, та в свою очередь в другую коробку и т.д. |
|||||||||||||||||||
Задание 27. Анализ программы с циклами и условными операторами У медицинской компании есть N пунктов приёма биоматериалов на анализ. Все пункты расположены вдоль автомагистрали и имеют номера, соответствующие расстоянию от нулевой отметки до конкретного пункта. Известно количество пробирок, которое ежедневно принимают в каждом из пунктов. Пробирки перевозят в специальных транспортировочных контейнерах вместимостью не более 36 штук. Каждый транспортировочный контейнер упаковывается в пункте приёма и вскрывается только в лаборатории. Файл А Дано два входных файла (файл A и файл B), каждый из которых в первой строке содержит число N (1 ≤ N ≤ 10 000 000) – количество пунктов приёма биоматериалов. В каждой из следующих N строк находится два числа: номер пункта и количество пробирок в этом пункте (все числа натуральные, количество пробирок в каждом пункте не превышает 1000). Пункты перечислены в порядке их расположения вдоль дороги, начиная от нулевой отметки. Типовой пример имеет иллюстративный характер. Для выполнения задания используйте данные из прилагаемых файлов. |
Ответ: 51063 5634689219329 |
Сегодня посмотрим одно из самых интересных заданий из ЕГЭ по информатике 2023. Будем решать 24 задание. В этом задании нужно работать с файлами.
Все решения задач из задания 24 ЕГЭ по информатике 2023 будут приведены на языке программирования Python (Питон).
Поехали!
Задача (Самая простая)
Текстовый файл состоит не более чем из 106 символов A, B и C. Определите максимальное количество идущих подряд символов B. Для выполнения этого задания следует написать программу. Ниже приведён файл, который необходимо обработать с помощью данного алгоритма.
Решение:
Решим данную задачу на языке Python.
f=open('24_1.txt') s=f.read() k=0 kmax=0 for i in range(0, len(s)): if s[i]=='B': k=k+1 kmax=max(k, kmax) else: k=0 print(kmax)
С помощью команды open() подвязываемся к файлу. Чтобы не прописывать полный путь, файл должен лежать в той же папке, что и программа.
С помощью команды .read() зачитываем в переменную s всё содержимое файла.
Переменная k — это текущий счётчик символов «B». Задача переменной kmax сохранить максимальное значение k.
С помощью цикла for перебираем все символы из строки s. Переменная i пробегается по номерам всех симолов. Счёт символов начинается в строке с нуля. В начале берём нулевой символ, потом первый и т.д. Конструкция for i in range(0, len(s)) позволяет пройтись по всем символам строки до конца.
Если нам встретился нужный символ «B», то мы счётчик прибавляем на 1. Это значит, что мы подсчитываем текущую цепочку. Если будет стоять 3 символа «B» подряд, значит, счёт k покажет значение 3. Как только встретится дургой символ, то это означает, что цепочка прервалась и счётчик переводится в первоначальное положение 0.
При любом увеличении счётчика происходит анализ этого счётчика на максимальность. Функция max выбирает максимальное значение из старого значения kmax и нового показания счётчика k. Если счётчику k удалось победить kmax, то его значение будет считаться максимальным на данный момент времени.
В ответ идёт значение kmax. Это и есть длина максимальной цепочки. В этой задачке ответ получается 11.
Ответ: 11
Закрепим это простое задание из ЕГЭ по информатике 2023.
Задача (Простая, закрепление)
Текстовый файл состоит не более чем из 106 символов X, Y и Z. Определите максимальное количество идущих подряд символов, среди которых нет символа Z. Для выполнения этого задания следует написать программу.
Решение:
Решение похоже на предыдущее.
f=open('24_2.txt') s=f.read() k=0 kmax=0 for i in range(0, len(s)): if s[i]!='Z': k=k+1 kmax=max(k, kmax) else: k=0 print(kmax)
Если нет символов «Z», то подсчитываем, иначе сбрасываем.
Задача (Обращаемся к соседу)
Текстовый файл состоит не более чем из 106 символов X, Y и Z. Определите максимальное количество идущих подряд символов, расположенных в алфавитном порядке (возможно с повторением симолов). Для выполнения этого задания следует написать программу.
Решение:
f=open('24_2.txt') s=f.read() k=1 kmax=0 for i in range(0, len(s)-1): if s[i]<=s[i+1]: k=k+1 kmax=max(k, kmax) else: k=1 print(kmax)
В ответе получается 15. Символы можно сравнивать между собой с помощью знаков «>» или меньше «<» ( а так же «>=» или «<=»), причём это сравнение происходит в алфавитном порядке. Например, символ «B» будет больше, чем «A» и т.п. Теперь нам нужно уже обратится к соседу, уже важна связь между соседними символами. Раз мы обращаемся к следующему символу, то должны пробегать до len(s)-1, иначе куда мы будем обращаться, когда дойдём до последнего символа?
В самом начале цепочки мы анализируем два символа, а к счётчику прибавляем всего лишь 1. Чтобы это учесть, в начале счётчику (переменной k) присваиваем 1. Затем, по мере продвижения по цепочке, мы добавляем в наш анализ 1 новый символ, и к счётчику добавляется одна 1. Дальше уже таких проблем нет.
Раз мы присвоили в переменную k единицу, то и сбрасывать в ветке else мы тоже должны на 1. Эти значения обычно взаимосвязаны.
Если мы обращаемся к соседнему символу, как правило, счётчик и сброс устанавливаются в 1. Это не стопроцентная истина, но иметь ввиду это нужно.
Ответ: 15
Задача (Обращаемся к соседу, закрепление)
Текстовый файл состоит не более чем из 106 символов арабских цифр (0, 1, …,9). Определите максимальное количество идущих подряд цифр, среди которых каждые две соседние различны. Для выполнения этого задания следует написать программу.
Решение:
f=open('24_3.txt') s=f.read() k=1 kmax=0 for i in range(0, len(s)-1): if s[i]!=s[i+1]: k=k+1 kmax=max(k, kmax) else: k=1 print(kmax)
Если соседи различны, мы подсчитываем, иначе сбрасываем.
Ответ: 120
Задача (Обращаемся к соседу, ещё сложнее)
Текстовый файл состоит не более чем из 106 символов арабских цифр (0, 1, …,9). Определите максимальное количество идущих подряд нечётных цифр, расположенных в неубывающем порядке. Для выполнения этого задания следует написать программу.
Решение:
f=open('24_3.txt') s=f.read() k=1 kmax=0 for i in range(0, len(s)-1): if s[i]<=s[i+1] and s[i] in '13579' and s[i+1] in '13579' : k=k+1 kmax=max(k, kmax) else: k=1 print(kmax)
Здесь опять можно применить знаки сравнения прям к символам. Удобно проверить принадлежность к нечётным цифрам конструкцией s[i] in ‘13579’. Нечётной цифрой должна быть как текущая, так и следующая.
Ответ: 8
Решим ещё одну тренировочную задачу из ЕГЭ по информатике 2023.
Задача (Обращаемся к соседу, ещё сложнее, закрепление)
Текстовый файл состоит не более чем из 106 символов 1, 2, 3, A, B, С. Определите максимальное количество идущих подряд символов, среди которых никакие две буквы и никакие две цифры не стоят рядом. Для выполнения этого задания следует написать программу.
Решение:
f=open('24_4.txt') s=f.read() k=1 kmax=0 for i in range(0, len(s)-1): if (s[i] in '123' and s[i+1] in 'ABC') or (s[i] in 'ABC' and s[i+1] in '123') : k=k+1 kmax=max(k, kmax) else: k=1 print(kmax)
В этой задаче цифры и буквы должны чередоваться. Если у нас цифра, то следующая должны быть буква, или наоборот, если у нас буква, то следующая должна быть цифра. В этих двух случаях прибавляем к счётчику 1.
Ответ: 20
Задача (Исключаем строку из 2-х символов, демо 2022)
Текстовый файл состоит из символов P, Q, R и S.
Определите максимальное количество идущих подряд символов
в прилагаемом файле, среди которых нет идущих подряд символов P.
Для выполнения этого задания следует написать программу.
Решение:
Напишем решение на языке Python.
f=open('24_5.txt') s=f.read() k=1 kmax=0 for i in range(0, len(s)-1): if s[i]=='P' and s[i+1]=='P': k=1 else: k=k+1 kmax = max(k, kmax) print(kmax)
Подсчитываем символы, пока не встретилась комбинация двух P подряд. Как только встретилась данная комбинация, сбрасываем счётчик на 1. Здесь мы сбрасываем счётчик на значение 1, чтобы учесть один символ, которые находится в самой комбинации PP. И в начале мы тоже устанавливаем счётчик в значение 1 по этой же причине.
Мы проходим в цикле for до длины строки минус один. Значение 1 в счётчике при сбросе и в начале программы так же компенсирует и тот момент, что мы не подсчитываем последний символ!
При изменении счётчика, сохраняем максимальное значение в переменной mx
Если бы у нас была вместо PP другая комбинация, состоящая к примеру из 5 символов, то мы бы тогда в начале и при сбросе писали в счётчик значение 5-1=4.
Здесь тоже работает негласное правило, обращаемся к соседу, значит, счётчик устанавливаем в 1.
В этой задаче получается ответ 188.
Ответ: 188
Задача (Исключаем подстроку из 3-х символов)
Текстовый файл состоит из символов арабских цифр(0, 1, …,9).
Определите максимальное количество идущих подряд символов
в прилагаемом файле, среди которых нет трёх символов 0, стоящих рядом.
Для выполнения этого задания следует написать программу.
Решение:
Напишем решение на языке Python.
f=open('24_6.txt') s=f.read() k=2 kmax=0 for i in range(0, len(s)-2): if s[i]=='0' and s[i+1]=='0' and s[i+2]=='0': k=2 else: k=k+1 kmax = max(k, kmax) print(kmax)
Чтобы понять это решение, нужно посмотреть предыдущую задачу. Мы здесь обращаемся к двум соседям, значит, счётчик устанавливаем в 2. Так же проходим в цикле до len(s)-2. Нежелательная строка может состоять не только из одинаковых символов. Может быть строка «XYYZ», к примеру.
Ответ: 7684
Задача (Не более одного символа Z)
Текстовый файл состоит не более чем из 106 символов X, Y и Z. Определите максимальное количество идущих подряд символов, среди которых символ Z встречается не более одного раза.
Решение:
В нашей цепочке один раз можно встретиь символ Z, а два раза уже нельзя. Здесь мы применим функцию .split(). Как работает эта фнкция? Напишем тестовую программу.
s='sadqttqtreq' a=s.split('q') print(a)
Результат данной программы будет следующим:
[‘sad’, ‘tt’, ‘tre’, »]
Команда split «разрезает» строку по символу «q». В результате мы получаем массив с кусочками этой строки.
Решение нашей задачи.
f=open('24_7.txt') s=f.read() a=s.split('Z') k=0 kmax=0 for i in range(0, len(a)-1): k = len(a[i]) + 1 + len(a[i+1]) kmax = max(k, kmax) print(kmax)
Разрезаем нашу строку по символу «Z». Пробегаемся уже по массиву a. Цепочка-кандидат это текущий кусочек (a[i]), символ Z (1) и следующий кусочек (a[i+1]).
Каждого кандитата проверяем сразу на максимальность.
Ответ: 43
Задача (Не более двух символов Z)
Текстовый файл состоит не более чем из 106 символов X, Y и Z. Определите максимальное количество идущих подряд символов, среди которых символ Z встречается не более двух раз.
Решение:
Решение аналогично предыдущему.
f=open('24_7.txt') s=f.read() a=s.split('Z') k=0 kmax=0 for i in range(0, len(a)-2): k = len(a[i]) + 1 + len(a[i+1]) + 1 + len(a[i+2]) kmax = max(k, kmax) print(kmax)
Ответ: 50
Задача (Звенья)
Текстовый файл состоит не более чем из 106 символов X, Y и Z. Определите максимальную длину цепочки символов, состоящей из повторяющихся фрагментов XYZ. Цепочка должна начинаться с символа X и заканчиваться символом Z. Например, для строки ZZZXYZXYZXZZZ длина цепочки равна 6: XYZ+XYZ
Решение:
Если мы подсчитаем количество идущих подряд звеньев XYZ, то, можно сказать, дело сделано.
f=open('24_8.txt') s=f.read() s=s.replace('XYZ', '1') k=0 kmax=0 for i in range(0, len(s)): if s[i]=='1': k=k+1 kmax=max(k, kmax) else: k=0 print(kmax*3)
Мы с помощью команды replace заменили звенья на «1» (на символ, которого точно нет в файле). Теперь задача свелась к самой простой, которую мы рассматривали в начале статьи. Нужно просто подсчитать количество идущих поряд единиц.
В ответе нас просили указать количество символов, а не звеньев, поэтому переменную kmax умножаем на 3.
Ответ: 66
Задача (Звенья, закрепление)
Текстовый файл состоит не более, чем из 106 символов из набора A, B, С. Найдите максимальное количество идущих пар символов AC или AB. Искомая подстрока может включать только пары AB, только пары AC или содержать одновременно как пары AC, так и пары AB.
Решение:
f=open('24_9.txt') s=f.read() s=s.replace('AB', '1') s=s.replace('AC', '1') k=0 kmax=0 for i in range(0, len(s)): if s[i]=='1': k=k+1 kmax=max(k, kmax) else: k=0 print(kmax)
Здесь нам подходит звено, как и AB, так и AC. В ответе нужно указать количество пар, поэтому не на что умножать переменную kmax не нужно.
Ответ: 19
Задача (Звенья, основная волна 20.06.22)
Текстовый файл состоит из символов A, B, C, D и O. Определите максимальное количество идущих подряд пар символов вида согласная + гласная в прилагаемом файле. Для выполенения этого задания следует написать программу.
Решение:
f=open('24_10.txt') s=f.read() s=s.replace('BA', '1') s=s.replace('CA', '1') s=s.replace('DA', '1') s=s.replace('BO', '1') s=s.replace('CO', '1') s=s.replace('DO', '1') k=0 kmax=0 for i in range(0, len(s)): if s[i]=='1': k=k+1 kmax=max(k, kmax) else: k=0 print(kmax)
Ответ: 174
Задача (Звенья, последнее звено неполное)
Текстовый файл состоит не более чем из 106 символов X, Y и Z. Определите максимальную длину цепочки вида XYZXYZXYZ… (составленной из фрагментов XYZ, последний фрагмент может быть неполным). Для выполнения этого задания следует написать программу. Ниже приведён файл, который необходимо обработать с помощью данного алгоритма.
Решение:
Т.к. последнее звено может быть неполным, здесь удобно применить другой алгоритм.
Пусть в начале показания счётчика равно нулю. Если мы находим нужный нам символ в нужной последовательности, то прибавляем к счётчику 1. Если последовательность сбивается, то ставим счётчик в ноль.
На рисунке представлен данный алгоритм. В нижней строке указано показание счётчика в момент анализа символа.
На данном рисунке максимальная длина цепочки нужных символов равна 9.
Видим, что для символа X, когда он находится на своём месте, остаток от деления значения счётчика на 3 равен 0.
Для символа Y, когда данный символ находится на своём месте, остаток от деления значения счётчика на 3 равен 1.
Для символа Z, когда данный символ находится на своём месте, остаток от деления значения счётчика на 3 равен 2.
Мы смотрим остаток от деления на 3, потому что у нас длина звена равна трём (XYZ).
Таким образом, мы и наш анализ очередного символа привяжем к показанию счётчика:
f=open('24_11.txt') s=f.read() k=0 kmax=0 for i in range(0, len(s)): if (s[i]=='X' and k%3==0) or (s[i]=='Y' and k%3==1) or (s[i]=='Z' and k%3==2): k=k+1 kmax = max(k, kmax) else: if s[i]=='X': k=1 else: k=0 print(kmax)
Важный момент: Если нужную цепочку прервал символ X, то нужно счётчик сразу выставить в 1, иначе может произойти такая ошибка:
Т.е. первые три нужных символа в цепочке алгоритм не засчитал.
Поэтому мы не просто сбрасываем счётчик в ноль, а прописываем условие:
if s[i]=='X': k=1 else: k=0
Ответ: 13
Задача (Полезный приём)
Текстовый файл 24-157.txt состоит не более чем из 106 символов и содержит только заглавные буквы латинского алфавита (ABC…Z). Определите символ, который чаще всего встречается в файле между двумя одинаковыми символами. Например, в тексте CCBAABABCBC есть комбинации ABA, BAB, BCB и CBC. Чаще всего – 2 раза – между двумя одинаковыми символами стоит B, в ответе для этого случая надо написать B2 (без пробелов и других разделителей). Если таких символов несколько, выведите тот, который стоит раньше в алфавите.
Решение:
f=open('24-157.txt') s=f.read() a=[0]*150 for i in range(0, len(s)-2): if s[i]==s[i+2]: a[ord(s[i+1])] = a[ord(s[i+1])] + 1 ch='' mx=0 for i in range(0, 150): if a[i]>mx: mx=a[i] ch=chr(i) print(ch, mx)
Здесь мы заводим массив a. Индексы этого массива — это коды ANSI всех букв латинского алфавита (ABC…Z). Ведь, как мы знаем, каждая буква кодируется определённым числом (кодом ANSI). Вот часть этой таблицы.
Например, буква A кодируется кодом 65. Коды увеличиваются в алфавитном порядке на 1. Буква Z кодируется числом 90. Таким образом, 150 ячеек точно хватит для нашего алфавита. Здесь берём с запасом, потому что на экзамене можно точно не вспомнить коды, но достаточно запомнить, что 150 ячеек вполне хватит для заглавных и строчных букв латинского алфавита.
Значит, ячейка 65 отвечает за букву A, ячейка 66 отвечает за букву B и т.д. Если мы встретили букву между двумя одинаковыми буквами, то её ячейка увеличивается на 1.
Функция ord() превращает символ в код ANSI.
После того, как мы прошли всю строку и собрали информацию о наших буквах, нужно пройти массив a и найти наибольшее число в нём.
Здесь мы уже не пользуемся функцией max, а используем условие, потому что нужно кроме максимального числа тянуть ещё один параметр — сам код (переменную i). Функция chr() превращает код ANSI обратно в символ.
Ответ: W1608
Задача (Строки различной длины)
Текстовый файл 24-164.txt состоит не более чем из 106 символов и содержит только заглавные буквы латинского алфавита (ABC…Z). Текст разбит на строки различной длины. Необходимо найти строку, содержащую самую длинную цепочку стоящих подряд одинаковых букв. Если таких строк несколько, надо взять ту, которая в файле встретилась раньше. Определите, какая буква встречается в этой строке чаще всего. Если таких букв несколько, надо взять ту, которая стоит раньше в алфавите. Запишите в ответе эту букву, а затем – сколько раз она встречается во всем файле.
Пример. Исходный файл:
ZZQABA
ZALAAC
QRAQUT
В этом примере в первой и второй строках наибольшая длина цепочек одинаковых буквы равна 2 (ZZ в первой строке, AA во второй), в третьей – 1. Берём первую строку, т.к. она находится в файле раньше. В этой строке чаще других встречаются буквы Z и A (по 2 раза), выбираем букву A, т. к. она стоит раньше в алфавите. В ответе для этого примера надо записать A6, так как во всех строках файла буква A встречается 6 раз.
Решение:
Для считывания построчно файла, будем использовать конструкцию, как в задании 17. В начале найдём строчку, содержащую самую длинную цепочку стоящих подряд одинаковых букв.
f=open('24-164.txt') kmax=0 count=0 n=-1 for s in f.readlines(): count=count+1 k=1 for i in range(0, len(s)-1): if s[i]==s[i+1]: k=k+1 if k>kmax: kmax=k n=count else: k=1 print(n)
Получается строка под номером 162. Переменная count считает строки по порядку. В переменную n сохраняем номер нужной строки. Опять пользуемся условием, а не функцией max, т.к. здесь нужно и обновлять kmax, и сохранять значение n. У нас условие строгое k>kmax, значит, сохранится первая строка с наибольшей искомой цепочкой.
f=open('24-164.txt') count=0 a=[0]*150 for s in f.readlines(): count=count+1 k=1 if count==162: for i in range(0, len(s)): a[ord(s[i])] = a[ord(s[i])] + 1 ch='' mx=0 for i in range(0, 150): if a[i] > mx: mx=a[i] ch=chr(i) print(ch)
Теперь нас интересует только строка под номером 162. Далее используем приём из прошлой задачи. Заводим массив a из 150 ячеек и используем таблицу кодов ANSI. Так определяем какая буква встретилась чаще всего в строке под номером 162. Получается буква K.
f=open('24-164.txt') s=f.read() print(s.count('K'))
Осталось найти количестов букв K во всём файле. Для этого используем функцию .count()
Ответ: K36582
В задаче 15 «Задача (Полезный приём)», созданы переменные k и kmax — напрасно, они не используются.
Убрал, по привычке написал.
14-е задание: «Операции в системах счисления»
Уровень сложности
— повышенный,
Требуется использование специализированного программного обеспечения
— нет,
Максимальный балл
— 1,
Примерное время выполнения
— 5 минут.
Проверяемые элементы содержания: Знание позиционных систем счисления
До ЕГЭ 2021 года — это было задание № 16 ЕГЭ
Плейлист видеоразборов задания на YouTube:
Задание демонстрационного варианта 2022 года ФИПИ
Содержание:
- Определите наибольшее/наименьшее значение x, y
- Сколько цифр и сумма цифр
- Найти основание системы счисления и уравнения
Определите наибольшее/наименьшее значение x, y
14_14:
Операнды арифметического выражения записаны в системе счисления с основанием 15.
82x19₁₅ – 6x073₁₅
В записи чисел переменной x
обозначена неизвестная цифра из алфавита 15-ричной системы счисления. Определите наименьшее значение x
, при котором значение данного арифметического выражения кратно 11. Для найденного значения x
вычислите частное от деления значения арифметического выражения на 11 и укажите его в ответе в десятичной системе счисления. Основание системы счисления в ответе указывать не нужно.
Ответ: 7806
Показать решение:
✎ Решение с использованием программирования:
PascalABC.net:
|
||
Python: | ||
С++: |
Сколько цифр и сумма цифр
14_12:
Значение арифметического выражения
43∙7103 – 21∙757 + 98
записали в системе счисления с основанием 7.
Найдите сумму цифр получившегося числа и запишите её в ответе в десятичной системе счисления.
Ответ: 276
Показать решение:
✎ Решение с использованием программирования:
PascalABC.net, Решение 1:
|
||
PascalABC.net, Решение 2:
|
||
Python:
|
||
С++: |
14_1:
Значение арифметического выражения:
21024 + 464 — 64
записали в системе счисления с основанием 2.
Ответ: 123
✍ Показать решение:
✎ Решение с использованием программирования:
PascalABC.net, Решение 1:
|
||
PascalABC.net, Решение 2:
|
||
Python:
|
||
С++: |
✎ Решение теоретическое:
- Существует правило:
- Чтобы воспользоваться этим правилом, преобразуем общее выражение к степеням двойки:
2N = 10..02(1
единица и N
нулей)
21024 + (22)64 - 26 = 21024 + 2128 - 26
10...0 (1024 нуля) + 10...0 (128 нулей) - 10...0 (6 нулей)
10....00000 - 1024 нуля + 10..0 - 128 нулей _________________________ 10....10..0
10....00000 - 1024 нуля + 10..0 - 128 нулей _________________________ 10....10..0 - запомним единицу
2N — 2K = 1…1 (N - K
единиц)0…0(K
нулей)
10..0000000 - 128 нулей - 1000000 _________________________ 11..1000000 - 122 единицы и 6 нулей
122 + 1 = 123 единицы
📹 Видео (аналитическое решение)
📹 Видеорешение на RuTube здесь
14 задание. Демоверсия ЕГЭ 2018 информатика:
Значение арифметического выражения:
4910 + 730 – 49
записали в системе счисления с основанием 7.
Сколько цифр «6» содержится в этой записи?
Типовые задания для тренировки
Ответ: 18
✍ Показать решение:
✎ Решение с использованием программирования:
PascalABC.net, решение 1:
|
||
PascalABC.net, решение 2:
|
||
Python:
|
||
С++: |
✎ Решение теоретическое:
- Приведем все числа к степеням 7:
720 + 730 - 72
730 + 720 - 72
1. an = 10..0a n 2. an - am = (a-1)..(a-1)0..0a n-m m
730 = 10..0 30
0 + (20 - 2) = 18
Результат: 18
📹 Видео (аналитическое решение)
📹 Видеорешение на RuTube здесь
14_2:
Значение арифметического выражения:
4500 + 3*42500 + 16500 — 1024
записали в системе счисления с основанием 4.
Сколько цифр «3» содержится в этой записи?
Типовые задания для тренировки
Ответ: 496
✍ Показать решение:
✎ Решение с использованием программирования:
PascalABC.net:
|
||
Python:
|
||
С++: |
Результат: 496
📹 Видео (аналитическое решение)
📹 Видеорешение на RuTube здесь
14_5:
Значение арифметического выражения: 81024 + 832 – 65 – записали в системе счисления с основанием 8. Сколько цифр «7» содержится в этой записи?
Типовые задания для тренировки
Ответ: 31
✍ Показать решение:
✎ Решение с использованием программирования:
PascalABC.net:
|
||
Python:
|
||
С++: |
✎ Решение теоретическое:
- Приведем все числа к степеням восьмерки:
65 = 64 + 1 = 82 + 80;
81024 + 832 - (82 + 80); 81024 + 832 - 82 - 80
1. an = 10..0a n 2. an - am = (a-1)..(a-1)0..0a n-m m
81024 = 10..0 1024
3.-2n = -2n+1 + 2n
! Формула предназначена для чисел в двоичной системе счисления, но для подсчета цифр "7" в 8-й (или "6" в 7-й и т.п.) ее можно использовать (для поиска единиц или нулей она не подходит!!!)
-82 = -83 + 82
! обратите внимание, что тождество неверно, но
при поиске количества "7" этой формулой можно воспользоваться
(для поиска единиц или нулей она не подходит!)
Получаем:
81024 + 832 - 83 + 82- 80
0 + (32 - 3) + (2 - 0) = 31
14_13:
Сколько значащих нулей в двоичной записи числа 4350 + 8340 – 2320 – 12
?
Ответ: 324
Показать решение:
-
✎ Решение с использованием программирования:
PascalABC.net:
|
||
PascalABC.net, решение 2:
|
||
Python:
|
||
С++: |
✎ Решение теоретическое:
4350 + 8340 – 2320 – 12
(22)350 + (23)340 - 2320 - 3*22 = (22)350 + (23)340 - 2320 - 12 = 2700 + 21020 - 2320 - (23 + 22)
21020 + 2700 - 2320 - 23 - 22
-2n = -2n+1+2n
и преобразуем выражение:21020 + 2700 - 2321+ 2320- 24 + 23 - 22
21020 -> один не ноль 2700 - 2321 -> 379 не нулей 2320- 24 -> 316 не нулей 23 - 22 -> один не ноль Итого: 1+ 379+316 +1 = 697
1021 - 697 = 324
Результат: 324
Найти основание системы счисления и уравнения
14_7:
Укажите, сколько всего раз встречается цифра 2 в записи чисел 13, 14, 15, …, 23 в системе счисления с основанием 3.
Типовые задания для тренировки
Ответ: 13
Показать решение:
- Для начала достаточно перевести первое и последнее число предложенного интервала в троичную систему счисления. Сделаем это:
1. 13 | 3 12 4 | 3 1 3 1 1 1310 = 1113 2. 23 | 3 21 7 | 3 2 6 2 1 2310 = 2123
111, 112, 120, 121, 122, 200, 201, 202, 210, 211, 212
111, 112, 120, 121, 122, 200, 201, 202, 210, 211, 212
Ответ: 9
Показать решение:
- Разделим уравнение на три части и вычислим каждую часть отдельно (выделим части разным цветом):
204N+1 = 204N + 2616 1 2 3
1.
210
204N+1
По формуле получаем:
2*(N+1)2 + 0*(N+1)1 + 4*(N+1)0 =
= 2*(N2 + 2N + 1) + 0 + 4 = 2N2 + 4N + 6
2.
210
204N
По формуле получаем:
2*N2 + 0*N1 + 4*N0 =
= 2N2 + 4
3. 2616 = 3810
2N2 + 4N + 6 = 2N2 + 4 + 38; 4N = 36; N = 9
Ответ: 7
Показать решение:
- Вместо обозначения искомой системы счисления введем неизвестное x:
144x + 24x = 201x
144 + 24 = 201 1*x2 + 4*x1 + 4*x0 + 2*x1 + 4*x0 = 2*x2 + 0*x1 + 1*x0
x2 - 6x - 7 = 0
D = b2 - 4ac = 36 - 4*1*(-7) = 64
x = (-b ± √D)/2a
x1 = (6 + 8)/2 = 7
x2 = (6 - 8)/2 - не подходит
x = 7
14_9:
В некоторой системе счисления записи десятичных чисел 68 и 94 заканчиваются на 3. Определите основание системы счисления.
Типовые задания для тренировки
Ответ: 13
Показать решение:
- Вспомним правило:
- Примем искомую систему счисления за x. Тогда, исходя из приведенного правила имеем:
Последняя цифра записи числа в системе счисления с основанием X — это остаток от деления этого числа на X
94 / x = некоторое число и остаток 3 и 68 / x = некоторое число и остаток 3
91/x 65/x
91 - 65 = 26 65 - 26 = 39 39 - 26 = 13 26 - 13 = 13
14_10:
Некоторое число X из десятичной системы счисления перевели в системы счисления с основаниями 16, 8. Часть символов при записи утеряна. Позиции утерянных символов обозначены *
:
X = *516 = *0*8
Сколько чисел соответствуют условию задачи?
Типовые задания для тренировки
Ответ: 3
Показать решение:
- Данные числа с утерянными символами переведем из 16-й и из 8-й системы счисления в двоичную. Перевод будем делать триадами и тетрадами, неизвестные позиции оставим пустыми:
1. *516 * | 5 16 * * * * | 0 1 0 1 2 2. *0*8 * | 0 | * 8 * * *|0 0 0|* * * 2
* * 0 0 0 1 0 1
1. 01000101 2. 10000101 3. 11000101
📹 Видео (аналитическое решение
📹 Видеорешение на RuTube здесь)
14_4:
Укажите через запятую в порядке возрастания все основания систем счисления, в которых запись числа 75 оканчивается на 13.
Типовые задания для тренировки
Ответ: 8,72
✍ Показать решение:
- Так как 75 должно оканчиваться на 13, то имеем два общих случая:
1. 7510 = 13N 2. 7510 = ...13N (число оканчивается на 13)
1 случай:
75|N N|1 отсюда имеем => 75 - N = 3; т.е. N = 72 3
2 случай:
75|N 72|y отсюда имеем => 75 = Ny + 3, где N - целое, неотриц. 3
75|N 72| y |N => y = Nz + 1, где z - целое, неотриц. 3 y-1|z 1
75 = Ny + 3 y = Nz + 1
75 = N (Nz + 1) + 3; 75 = N2z + N + 3; 75 = N2z + N
z = (72 - N)/N2
72 - 5 / 52 = 67 / 25 не делится, - не подходит!
75 | 4
72 | 18| 4
3 16| 2
2 => не подходит! должна быть единица
75 | 6
72 | 12| 6
3 12| 1
0 => не подходит! должна быть единица
75 | 7
70
5 => не подходит! должна быть 3
75 | 8
72 | 9| 8
3 8| 1
1 => подходит!
📹 Видео (аналитический способ)
📹 Видеорешение на RuTube здесь
14_11:
Выражение 25*325 записано в троичной системе счисления. Определите, сколько в этой записи цифр 0, 1 и 2.
Ответ: «0»=26, «1»=2, «2»=1
Показать решение:
-
Рассмотрим каждый сомножитель отдельно.
- Первый сомножитель:
25 = 32 Переведем в троичную систему счисления (делением на 3, переписываем остатки). Результат: 3210 = 10123
325 = 10..0{25 нулей}3
1000 x 1012 = ---- 2000 1000 0000 1000 ------- 1012000
📹 Видео (аналитическое решение)
📹 Видеорешение на RuTube здесь
Рубрика «ЕГЭ»
Е25.22 которые соответствуют маске 1?7246*1 и при этом без остатка делятся на 4173
Маска числа – это последовательность цифр, в которой могут встречаться специальные символы «?» и «*». Символ «?» означает ровно одну произвольную цифру, символ «*» означает произвольную (в том числе пустую) последовательность цифр. Пример. Маске 123*4?5 соответствуют числа 123405 и 12376415. Найдите все натуральные числа, не превышающие 1010, которые соответствуют маске 1?7246*1 и при этом без …
Читать далее
Е24.35 сколько раз буква, образующая самую длинную цепочку в файле, встречается в строке
Текстовый файл содержит строки различной длины, содержащие только заглавные буквы латинского алфавита (ABC…Z). Будем называть цепочкой группу идущих подряд одинаковых букв в одной строке. Определите, сколько раз буква, образующая самую длинную цепочку в файле, встречается в строке, содержащей эту цепочку. Если в файле есть несколько цепочек одинаковой максимальной длины, нужно выбрать ту из них, для …
Читать далее
Е23.33 число 1 в число 11 и при этом содержат ровно одну команду умножения
Исполнитель преобразует число на экране. У исполнителя есть четыре команды, которым присвоены номера: 1. Прибавить 1 2. Прибавить 2 3. Умножить на 2 4. Умножить на 3 Первая команда увеличивает число на экране на 1, вторая увеличивает его на 2, третья – умножает на 2, четвёртая – умножает на 3. Программа для исполнителя – это …
Читать далее
Е17.44 запись элементов пары заканчивается одной и той же цифрой
Файл содержит последовательность целых чисел, по модулю не превышающих 10 000. Назовём парой два идущих подряд элемента последовательности. Определите количество пар, для которых выполняются следующие условия: – запись элементов пары заканчивается одной и той же цифрой; – ровно один элемент из пары делится без остатка на 3; – сумма квадратов элементов пары не превышает квадрат …
Читать далее
для которых можно подобрать такое b, что F(a, b) = 1 048 576
Алгоритм вычисления значения функции F(a, b), где a и b – целые неотрицательные числа, задан следующими соотношениями: F(0, 0) = 0; F(a, b) = F(a–1, b) + b, если a > b; F(a, b) = F(a, b–1) + a, если a ≤ b и b > 0. Укажите количество таких целых неотрицательных чисел a, для …
Читать далее
Е15.43 формула (x&35 ≠ 0 ∨ x&22 ≠ 0) → (x&15 = 0 → x&А ≠ 0) тождественно истинна
Обозначим через m&n поразрядную конъюнкцию неотрицательных целых чисел m и n. Например, 14&5 = 11102&01012 = 01002 = 4. Для какого наименьшего неотрицательного целого числа А формула (x&35 ≠ 0 ∨ x&22 ≠ 0) → (x&15 = 0 → x&А ≠ 0) тождественно истинна (т. е. принимает значение 1 при любом неотрицательном целом значении переменной …
Читать далее
Е14.56 В системе счисления с основанием p выполняется равенство 32×8 + xxx9 = yy02.
В системе счисления с основанием p выполняется равенство 32×8 + xxx9 = yy02. Буквами x и y обозначены некоторые цифры из алфавита системы счисления с основанием p. Определите значение числа yyxp и запишите это значение в десятичной системе счисления. Ответ: СтатГрад Вариант ИН22110301 14.02.2023 – задание №14
Читать далее
Е13.27 Определите количество различных путей ненулевой длины, которые начинаются
На рисунке представлена схема дорог, связывающих пункты А, Б, В, Г, Д, Е, Ж, И , К , Л , М , Н . П о каждой д ороге можно передвигаться только в направлении, указанном стрелкой. Определите количество различных путей ненулевой длины, которые начинаются и заканчиваются в пункте Е, не содержат этот пункт в качестве …
Читать далее
Е11.31 Сколько Кбайт потребуется для хранения 65 536 описаний, построенных по такой схеме
В базе данных хранится информация об объектах определённой структуры. Каждый объект описывается как последовательность из 404 простых элементов, при этом всего используется 2023 различных простых элемента. Каждое описание объекта записывается как последовательность кодов простых элементов, при этом код каждого элемента содержит одинаковое для всех элементов минимально возможное число битов, а для описания в целом отводится …
Читать далее
Е10.13 «Мастер и Маргарита» встречается числительное «двадцать» в любом падеже.
Определите, сколько раз в тексте романа Михаила Булгакова «Мастер и Маргарита» встречается числительное «двадцать» в любом падеже. Слово «двадцать» как часть составных числительных (например, «двадцать один») учитывать не надо. DOCX Ответ: СтатГрад Вариант ИН22110301 14.02.2023 – задание №10
Читать далее
Разбор варианта ЕГЭ информатика 2022
Кулабухов (Вариант 1)
-
Задание 7 -
Задание 8 -
Задание 9 -
Задание 10 -
Задание 11 -
Задание 12 -
Задание 13 -
Задание 14
Задание 1
На рисунке схема дорог изображена в виде графа, в таблице звездочками отображено наличие дорог между населеными пунктами. Отсутствие звездочки означает, что такой дороги нет.
Так как таблицу и схему рисовали независимо друг от друга, то нумерация населенных пунктов в таблице никак не связана с буквенными обозначениями на графе.
Выпишите последовательно, без пробелов и знаков препинания указанные на графе буквенные обозначения пунктов от П2 до П5, сначала букву, соответствующую П2, затем букву, соответствующую П3, и т.д.
Решение:
Ответ: ГАДБ
Задание 2
Олег заполнял таблицу истинности функции (¬ х ∨ y) ∧ (x ≡ ¬z) ∧ w, но успел заполнить лишь фрагмент из трёх различных её строк, даже не указав, какому столбцу таблицы соответствует каждая из переменных w, x, y, z.
Определите, какому столбцу таблицы соответствует каждая из переменных w, x, y, z.
В ответе напишите буквы w, x, y, z. В том порядке, в котором идут соответствующие им столбцы (сначала буква, соответствующая первому столбцу, затем буква, соответствующая второму столбцу, и т.д.). Буквы в ответе пишите подряд, никаких разделителей между буквами ставить не нужно.
Решение:
Составить таблицу истинности для выражения (¬ х ∨ y) ∧ (x ≡ ¬z) ∧ w нам поможет Python.
Phyton построил нам таблицу для функции, при которых данное выражение равно 1. Получили следующие наборы (см. рисунок). Сопоставим эти наборы с приведенным в задании фрагментом таблицы истинности.
Можем смело поставить единицы в пустые ячейки таблицы. Три единицы по вертикали имеет переменная w. Два нуля по вертикали только у переменной х. По горизонтали, в строке с двумя единицами, одна для w, вторая для z, а y определился сам. ВСЁ!
Ответ: yzxw
Задание 3
В файле приведен фрагмент базы данных «Стройматериалы» о поставках товаров в магазины некоторой торговой сети в нескольких районах города. База данных состоит из трех таблиц.
Таблица «Движение товаров» содержит записи о поставках товаров в магазины в течение первой декады сентября 2021г., а также информацию о проданных товарах. Поле Тип операции содержит значение Поступление или Продажа, а в соответствующее поле Количество упаковок занесена информация о том, сколько упаковок товара поступило в магазин или было продано в течение дня. Заголовок таблицы имеет следующий вид.
Таблица «Товар» содержит информацию об основных характеристиках каждого товара. Заголовок имеет следующий вид.
Таблица «Магазин» содержит информацию о местонахождении магазинов. Заголовок таблицы имеет следующий вид.
На рисунке изображена схема указанной базы данной
Используя информацию из приведенной базы данных, определите, на сколько уменьшилось количество упаковок свёрл по дереву диаметром 8 мм, имеющихся в наличии в магазинах Утреннего района, за период с 1 по 10 сентября включительно. В ответе запишите только число.
Скачать файл БД
Решение:
Решить задание нам помогут возможности табличного процессора Excel. Подключаем ко всем листам ФИЛЬТР.
Перейдём на лист «Магазин». Требуется отфильтровать записи в таблице, оставив только записи для магазинов Утреннего района.
Перейдём на лист «Товар». В этой таблице, воспользовавшись средствами поиска, найдём строку с товаром «Свёрло по дереву диаметром 8 мм». Артикул товара — 31:
Перейдём на лист «Движение товаров». Снова воспользуемся фильтром по столбцу «ID магазина», в фильтре отметим те ID магазинов, которые были найдены в таблице «Магазин» — А13, А14, А17 и А18. В столбце «Артикул» оставим только записи о движении товаров по артикулу 31. Проверим столбец с датами, всё в порядке, с 1 по 10 сентября. Что бы найти остаток, отсортируем столбец Тип операции во возрастанию, что бы отделить Поступление от Продажи. Скопируем полученную таблицу на отдельный лист. В результате получим следующую таблицу:
Ответ: -137
Задание 4
Для кодирования некоторой последовательности, состоящей из букв А, К, С, У, Ф, Ч, решили использовать неравномерный двоичный код, удовлетворяющий условию, что никакое кодовое слово не является началом другого кодового слова. Это условие обеспечивает возможность однозначной расшифровки закодированных сообщений. Для букв А, К, С, У использовали соответствиенно кодовые слова 00, 010, 10, 11. Для оставшихся букв – Ф и Ч – кодовые слова неизвестны.
Укажите кратчайшее возможное кодовое слово для буквы Ф, при котором код будет удовлетворять указанному условию. Если таких кодов несколько, укажите код с минимальным числовым значением.
Решение:
Используем приём Дерево Фано. Расставим на этом дереве те буквы, для которых уже известны кодовые слова.
Дерево рисуется обычно сверху вниз. В начале от дерева рисуются две ветки: ветка 0 и ветка 1. От каждой ветки можно нарисовать ещё две ветки, так же 0 и 1, и т. д.
Для удобства ветки с 1 будем направлять вправо, а ветки с 0 будем направлять влево.
В конце каждой ветки можно размещать буквы, но если мы разместили букву, то эта ветка блокируется, и от этой ветки больше нельзя делать новые ответвления.
Ответ: 0110
Задание 5
На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом.
- Строится двоичная запись числа N.
- К этой записи дописывается справа ещё три разряда по следующему правилу:
- а) если число четное, то в конце числа (справа) дописывается 00, в противном случае дописывается 10.
- б) если в полученном числе количество единиц чётное, то справа дописывается 0, в противном случае дописывается 1.
Укажите количество чисел R, которые принадлежат диапазону [130;350] и могут являться результатом работы алгоритма.
Решение:
Ответ: 27
Задание 6
Определите, при каком наименьшем значении переменной а программа выведет число 19. Для вашего удобства программа представлена на четырех языках программирования.
x = 0
p = 0
a = int(input())
while p + x < 1050:
p = p + a
x = x + 1
print(x)
Составим программу на языке Phyton для перебора возможных значений переменной a и выполнения для каждого значения заданного алгоритма. Выведем первое значение, при котором получится 19.
Ответ: 55
Задание 7
В графическом редакторе была создана картина с цветовой системой, содержащей 212 = 4096 цветов. Размер такой картинки – 24 Мбайта (без учета размера заголовка). В целях уменьшения объёма изображения и длину, и высоту рисунка уменьшили вдвое, а цветовую систему изменили до 210 = 1024 цветов. Для кодирования цвета каждого пикселя используется одинаковое наименьшее возможное число битов, коды пикселей записываются в файл один за другим без промежутков. Сколько Мбайт будет составлять картинка с изменёнными параметрами без учета размера заголовка?
Решение:
Ответ: 5
Задание 8
Саша составляет слова, переставляя буквы из слова «ИДИЛЛИЯ». Словом, считается любая допустимая последовательность букв, не обязательно осмысленная.
Сколько существует различных слов, которые может написать Саша?
Решение:
Ответ: 420
Задание 9
Откройте файл электронной таблицы Скачать 9.xlsx, содержащей вещественные числа — результаты измерения средней месячной влажности воздуха в период с 1935 по 2020 год. Найдите количество лет, в которые среднее арифметическое значение влажности воздуха за зимние месяцы (декабрь, январь, февраль) было больше среднего арифметического значения влажности воздуха за летние месяцы (июнь, июль, август).
Решение:
Ответ: 15
Задание 10
С помощью текстового редактора определите, сколько раз встречается слово “господ” или “Господ” в тексте произведения Н. А. Некрасова “Необыкновенный завтрак”. Другие формы слова “господ”, такие как “господа”, “господами” и т.д., учитывать не следует. В ответе укажите только число. Скачать 10.docx
Решение:
Ответ: 3
Задание 11
Запись для каждого пользователя при регистрации состоит из идентификатора, логина и пароля. Идентификатор представляет собой пятизначное (в десятичной системе счисления) натуральное число, которое кодируется минимальным количеством бит, одинаковым для всех пятизначных чисел, и занимает в компьютерной системе минимально возможное целое число байт. Логин состоит из 17 символов, которые пользователь придумывает сам, и содержит только символы из 11-символьного набора: A, B, C, D, E, F, G, H, K, L, M. Каждый такой логин в компьютерной программе записывается минимально возможным и одинаковым целым количеством байт (при этом используют посимвольное кодирование, все символы кодируются одинаковым и минимально возможным количеством бит). Далее к логину каждого пользователя дописывается пароль, автоматически сгенерированный системой, под которую отводится 9 байт.
Определите наибольшее количество пользователей, которых можно зарегистрировать в компьютерной системе, если для хранения сведений об этих пользователях выделено 6 Кбайт.
Решение:
Ответ: 292
Задание 12
Исполнитель Редактор получает на вход строку цифр и преобразовывает её. Редактор может выполнять две команды, в обеих командах v и w обозначают цепочки цифр.
А) заменить (v, w).
Эта команда заменяет в строке первое слева вхождение цепочки v на цепочку w.
Например, выполнение команды
Заменить (222, 58)
Преобразует строку 45222222234 в строку 4558222234.
Если в строке нет вхождений цепочки v, то выполнение команды
заменить (v, w)
не меняет эту строку.
Б) нашлось (v).
Эта команда проверяет, встречается ли цепочка v в строке исполнителя Редактор. Если она встречается, то команда возвращает логическое значение “истина”, в противном случае возвращает значение “ложь”. Строка исполнителя при этом не меняется.
Цикл
ПОКА условие
последовательность команд
КОНЕЦ ПОКА
означает, что последовательность команд выполняется, пока условие истинно.
В конструкции
ЕСЛИ условие
ТО команда
КОНЕЦ ЕСЛИ
команда выполняется, если условие истинно.
Решение:
Проверим решение программой:
Ответ: 7
Задание 13
На рисунке 3 представлена схема дорог, связывающих города А, Б, В, Г, Д, Е, Ж, З, И, К, Л, М. По каждой дороге можно двигаться в одном направлении, указанном стрелкой.
Сколько существует различных путей из города А в город М, проходящих через город Ж и не проходящих через город В?
Решение:
Ответ: 20
Задание 14
Значение выражения 2435 + 37 — 2 — X записали в системе счисления с основанием 3, при этом в записи оказалось ровно 20 цифр “2”.
Решение: