Информатика code enjoy
Информатика code enjoy
Разбор демоверсии ЕГЭ по информатике 2022 (1-5 Задание)
Привет! Сегодня порешаем демонстрационный вариант ЕГЭ по информатике 2022.
В этой статье представлены задания с 1-ого по 5.
На рисунке схема дорог Н-ского района изображена в виде графа, в таблице содержатся сведения о протяжённости каждой из этих дорог (в километрах).
Так как таблицу и схему рисовали независимо друг от друга, то нумерация населённых пунктов в таблице никак не связана с буквенными обозначениями на графе. Определите, какова сумма протяжённостей дорог из пункта Б в пункт В и из пункта Г в пункт Д. В ответе запишите целое число.
В начале нужно понять, какой город под какой буквой находится в таблице.
Рисунок имеет симметричную структуру. Поэтому например точки A и E мы не сможем отличить друг от друга. Но найдём примерное их расположение.
Города A и E имеют по две дороги. Значит, им соответствуют номера 1 и 3.
Городам Б и Д соответствуют номера 2 и 4. Т.к. эти номера по таблице связаны с 1 и 3. Опять, какому номеру соответствует конкретная буква, мы не сможем узнать.
С номерами 2 и 4, должны быть связаны уже В и Г. Значит, городам В и Г соответствуют номера 6 и 7.
Получается, чтобы ответить на вопрос задачи, нужно суммировать расстояния между 2 и 6 И 4 и 7.
13+7=20
Ответ: 20
Миша заполнял таблицу истинности логической функции F
но успел заполнить лишь фрагмент из трёх различных её строк, даже не указав, какому столбцу таблицы соответствует каждая из переменных w, x, y, z.
Определите, какому столбцу таблицы соответствует каждая из переменных w, x, y, z.
В ответе напишите буквы w, x, y, z в том порядке, в котором идут соответствующие им столбцы (сначала буква, соответствующая первому столбцу; затем буква, соответствующая второму столбцу, и т.д.). Буквы в ответе пишите подряд, никаких разделителей между буквами ставить не нужно.
Пример. Функция F задана выражением ¬x \/ y, зависящим от двух переменных, а фрагмент таблицы имеет следующий вид.
В этом случае первому столбцу соответствует переменная y, а второму столбцу – переменная x. В ответе следует написать: yx.
Напишем шаблон для решения 2 задания на языке программирования Python.
Здесь мы перебираем все варианты с помощью вложенных циклов. И если наша функция превращается в истину, то печатаем значения переменных.
Отрицание меняется на not, следование представляем по формуле A->B = ¬A or B.
x y z w
0 1 0 1
1 1 0 0
1 1 1 0
Т.к. у нас нет столбца, который состоит только из одних нулей, то в четвёртом столбце в пустой ячейке будет 1.
В файле приведён фрагмент базы данных «Продукты» о поставках товаров в магазины районов города. База данных состоит из трёх таблиц.
Таблица «Движение товаров» содержит записи о поставках товаров в магазины в течение первой декады июня 2021 г., а также информацию о проданных товарах. Поле Тип операции содержит значение Поступление или Продажа, а в соответствующее поле Количество упаковок, шт. занесена информация о том, сколько упаковок товара поступило в магазин или было продано в течение дня. Заголовок таблицы имеет следующий вид.
ID операции | Дата | ID магазина | Артикул | Тип операции | Количество упаковок, шт. | Цена, руб./шт. |
Таблица «Товар» содержит информацию об основных характеристиках каждого товара. Заголовок таблицы имеет следующий вид.
Артикул | Отдел | Наименование | Ед. изм. | Количество в упаковке | Поставщик |
Таблица «Магазин» содержит информацию о местонахождении магазинов. Заголовок таблицы имеет следующий вид.
ID магазина | Район | Адрес |
На рисунке приведена схема указанной базы данных.
Используя информацию из приведённой базы данных, определите на сколько увеличилось количество упаковок яиц диетических, имеющихся в наличии в магазинах Заречного района, за период с 1 по 10 июня включительно.
В ответе запишите только число.
Откроем файл Excel. Внизу у нас три вкладки (три таблицы).
Есть магазины, есть товары, есть операции, какие товары, куда перемещаются.
Прочитаем ещё раз внимательно вопрос задачи. Переходим на вкладку Магазин. Выделим столбец «Район» и отсортируем по данному столбцу таблицу (кнопка сортировки находится обычно в правом верхнем углу). Если появится вопрос об автоматическом расширении выделенного диапазона, отвечаем утвердительно.
Теперь удобно посмотреть ID магазинов Заречного Района. Всего получается 4 ID: M3, M9, M11, M14.
Переходим на вкладку Товар. Нас интересует яйцо диетическое. Ищем по поиску (Ctrl + F) и получаем Артикул данного товара. Это номер 15.
Данные мы собрали, теперь переходим на вкладку Движение товаров.
Сначала подсчитаем сколько поступило указанного товара в указанные торговые точки за период 1-10 июня. Убедимся, что первая строчка не подходит нам по условию и в ячейке H2 ставим значение 0. Это число олицетворяет количество поступивших товаров.
В ячейке H3 пропишем формулу:
=ЕСЛИ(И(ИЛИ(C3= «M3» ;C3= «M9» ;C3= «M11» ; C3= «M14» ); D3=15; F3= «Поступление» );H2+E3;H2)
Эту формулу мы распространяем на весь столбец H. Тогда она будет анализировать каждую строчку и подсчитывать количество поступившего товара, учитывая все обстоятельства задачи. В самой последней ячейке столбца H получается число 1420. Это и есть то количество нашего товара, которое поступило в указанные торговые точки. Про дату в этой задаче думать не нужно, т.к. вся таблица по операциям происходит в пределах 1-10 июня.
Аналогично, подсчитаем в столбце I, какое количество убыло. Тогда формула получается:
=ЕСЛИ(И(ИЛИ(C3= «M3» ;C3= «M9» ;C3= «M11» ; C3= «M14» ); D3=15; F3= «Продажа» );I2+E3;I2)
Получаем количество проданных товаров 454.
Подсчитаем на сколько же увеличилось товаров:
Это и будет ответ.
В подобных задачах удобно воспользоваться фильтрами!
Выбираем вкладку Магазин и нажимаем кнопку Фильтр.
При этом должна быть выделена не пустая ячейка.
Кнопка Фильтр может находится и на главной панеле.
Теперь можно отфильтровать магазины Заречного района.
Нажмём «ОК», и у нас останутся только магазины Заречного района. Фиксируем их ID.
Переходим на вкладку Товар. Включаем фильтры. С помощью фильтров оставляем только яйцо диетическое и узнаём его Артикл.
Переходим на главную вкладку Движение товаров. Включаем фильтры. Фильтруем операции, которые подходят для наших магазинов и для нашего товара.
В начале найдём количество упаковок, которые поступили в магазины, поэтому в столбце Тип операции выбираем » Поступление«.
Выделяем ячейки столбца Количество упаковок для получившихся операций, и внизу смотрим сумму этих ячеек.
Здесь нельзя пользоваться стандартной функцией СУММ, потому что она суммируем ещё и скрытые ячейки. А так мы получаем сумму выделенных ячеек.
Получается количество поступивших упаковок равно 1420. Аналогично количество убывших получается 454.
Для кодирования некоторой последовательности, состоящей из букв Л, М, Н, П, Р, решили использовать неравномерный двоичный код, удовлетворяющий условию, что никакое кодовое слово не является началом другого кодового слова. Это условие обеспечивает возможность однозначной расшифровки закодированных сообщений. Для букв Л, М, Н использовали соответственно кодовые слова 00, 01, 11. Для двух оставшихся букв П и Р кодовые слова неизвестны.
Укажите кратчайшее возможное кодовое слово для буквы П, при котором код будет удовлетворять указанному условию. Если таких кодов несколько, укажите код с наименьшим числовым значением.
Т.к. никакое кодовое слово не является началом другого кодового слова, то, значит, выполняется условие Фано.
Следовательно, можно воспользоваться приёмом дерево Фано.
Разместим буквы для которых известны коды на дереве Фано.
При построении дерева Фано мы проращивает от корня две ветки 0 и 1. От каждой ветки тоже можно прорастить две ветки 0 и 1 и т.д. Если буква «села» на ветку, то она блокирует эту ветку, и больше нельзя проращивать новые ответвления от неё.
На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом.
1. Строится двоичная запись числа N.
2. К этой записи дописываются справа ещё два разряда по следующему правилу:
а) складываются все цифры двоичной записи числа N, и остаток от деления суммы на 2 дописывается в конец числа (справа). Например, запись 11100 преобразуется в запись 111001;
б) над этой записью производятся те же действия – справа дописывается остаток от деления суммы её цифр на 2.
Полученная таким образом запись (в ней на два разряда больше, чем в записи исходного числа N) является двоичной записью результирующего числа R.
Укажите такое наименьшее число N, для которого результат работы данного алгоритма больше числа 77. В ответе это число запишите в десятичной системе счисления.
На вход поступает натуральное (обычное, не дробное, положительное) число N.
Это число алгоритм переводит в двоичную систему.
Сказано, что дописываются два разряда справа к тому двоичному числу, которое получили в первом пункте.
Про первый дополнительный разряд написано в пункте a второго правила: «складываются все цифры двоичной записи числа N, и остаток от деления суммы на 2 дописывается в конец числа (справа). Например, запись 11100 преобразуется в запись 111001».
Если сказать более просто, то автомат подсчитывает количество единиц у первоначального двоичного числа N, полученного в первом пункте. Если количество чётное, то автомат в первый дополнительный разряд должен поставить 0. Если количество нечётное, то автомат в первый дополнительный разряд должен поставить 1.
Про второй дополнительный разряд сказано в пункте б второго правила. Автомат сделает тоже самое, что и в предыдущем пункте, только теперь подсчёт единиц будет происходить не только в двоичной записи числа N, но и в первом дополнительном разряде.
В вопросе просят указать входящее наименьшее число N, чтобы автомат выдал число R больше 77.
Т.к. число R должно быть больше 77, то переведём число 78 (77 + 1) в двоичный вид, чтобы можно было оценить входящее число N.
Это можно сделать стандартным калькулятором windows, переключив его в режим «Программиста» (Вид->»Программист»).
Получилось число 1001110. Будем рассматривать (начиная с 1001110) числа на выполнение правил, которые заданы для алгоритма. Если все правила будут выполнены, значит, мы получили то число, по которому вычислим изначальное N. Нам нужно получить именно минимальное число, поэтому мы и начали с минимального возможного претендента для числа R (78).
Здесь нам сразу повезло, сразу число 78 удовлетворяет всем условиям. Нас просили написать именно число N, поэтому от числа 1001110 отбрасываем два разряда и переводим в десятичную систему.
Разбор демоверсии ЕГЭ по информатике 2022 (6-10 Задание)
Продолжаем разбор демонстрационного варианта ЕГЭ по информатике 2022.
В этой статье разберём с 6-ого по 10 задание.
Удачи на ЕГЭ по информатике 2022!
Определите, при каком наибольшем введённом значении переменной s программа выведет число 64. Для Вашего удобства программа представлена на четырёх языках программирования.
Паскаль | Python | Алгоритмический язык |
---|---|---|
C++ |
Решим задачу методом перебора на языке программирования Python.
Нас спрашивают, какое наибольшее число должен ввести пользователь программы, чтобы программа распечатала число 64. Мы будем подставлять каждое число в диапазоне, к примеру, от 1 до 1000 и попробуем получить на выходе число 64.
Делаем это с помощью цикла. Как только в переменной n будет значение 64, мы печатаем переменную i
Видим, что максимальное число, которое даёт нужный результат это 259.
Для хранения произвольного растрового изображения размером 128 × 320 пикселей отведено 20 Кбайт памяти без учёта размера заголовка файла. Для кодирования цвета каждого пикселя используется одинаковое количество бит, коды пикселей записываются в файл один за другим без промежутков. Какое максимальное количество цветов можно использовать в изображении?
Решение:
Узнаем, сколько информации будет весить один пиксель (одна точка).
Теперь воспользуемся главной формулой для 7 задания из ЕГЭ по информатике.
Ответ: 16
Все четырёхбуквенные слова, в составе которых могут быть только буквы Л, Е, М, У, Р, записаны в алфавитном порядке и пронумерованы, начиная с 1.
Ниже приведено начало списка.
Под каким номером в списке идёт первое слово, которое начинается с буквы Л?
Закодируем в правом столбце буквы цифрами, начиная с нуля.
Дальше кодирование прекращаем, т.к. буквы начинают повторяться.
Если представить список в виде цифр, то получится счёт в пятеричной системе, ведь у нас пять цифр.
1. 0000
2. 0001
3. 0002
4. 0003
5. 0004
6. 0010
В вопросе спрашивают про первое слово, которое начинается с буквы Л. А мы понимаем, что спрашивают про число 10005 в пятеричной системе, потому что это первое число, которое начинается с 1. Длина числа равна 4, т.к. длина слов равна 4.
Переведём число 10005 из пятеричной системы в нашу родную десятичную систему.
0*5 0 + 0*5 1 + 0*5 2 + 1*5 3 = 125
А порядковый номер (столбец слева) отличается от счёта в пятеричной системе на 1. Порядковый номер на 1 больше. Поэтому в ответе напишем 126.
Откройте файл электронной таблицы, содержащей в каждой строке три натуральных числа. Выясните, какое количество троек чисел может являться сторонами треугольника, то есть удовлетворяет неравенству треугольника.
В ответе запишите только число.
Неравенство треугольника заключается в том, что каждая сторона должна быть меньше, чем сумма двух других сторон.
Напротив тех строчек, которые удовлетворяют этому неравенству будем ставить 1, остальным ставим 0.
Сформируем формулу для первой строчки. Кликаем в ячейку D1 и нажимаем кнопку Вставить функцию.
Выбираем функцию ЕСЛИ. Пишем логическое выражение:
И(A1
Если одновременно выполняются три условия, то в ячейку идёт 1, иначе 0.
Распространим формулу на весь столбец. Подведём курсор к правому нижнему углу. Как только загорелся чёрный крестик, кликаем два раза, и формула должна распространится на весь столбец.
Возле тех строчек, которые удовлетворяют условию, будут нули, возле тех, которые нет, будут единицы.
Найдём сумму столбца D. Это и будет количество троек, которые подходят в нашей задаче.
Кликаем по ячейке E1, нажимаем Вставить функцию и выбираем функцию СУММ. Там выбираем столбец D мышкой.
Нажимаем ОК, получается 2453.
С помощью текстового редактора определите, сколько раз, не считая сносок, встречается слово «долг» или «Долг» в тексте романа в стихах А.С. Пушкина «Евгений Онегин». Другие формы слова «долг», такие как «долги», «долгами» и т.д., учитывать не следует. В ответе укажите только число.
Открываем соответствующий файл в программе Word. На вкладке «Главная» находится кнопка «Найти«. Кликаем по чёрному треугольнику возле этой кнопки и выбираем «Расширенный поиск«.
На вкладке «Главная» находится кнопка «Найти«. Кликаем по чёрному треугольнику возле этой кнопки и выбираем «Расширенный поиск«.
Далее, нажимаем кнопку «Больше>>«.
Теперь у нас есть все инструменты, чтобы решить 10 задание из ЕГЭ по информатике 2022.
В поле «Найти» пишем наше слово «долг«. Галочку «Учитывать регистр» не ставим, т.к. слово может быть и с большой буквы. Но ставим галочку «Только слово целом«.
Здравствуйте, дорогие друзья! Сегодня разберём, как решать второе задание из ЕГЭ по информатике 2020.
Во втором задании ЕГЭ по информатике у нас обычно есть логическая функция, которая зависит от логических переменных. Логические переменные могут принимать только два значения: 0 (Ложь) или 1 (Истина).
С логическими переменными можно производить логические операции. При решении второго задания из ЕГЭ по информатике необходимо твёрдо знать каждую логическую операцию, и давайте рассмотрим их.
Ещё соотношения:
Передём к решению задач из ЕГЭ по информатике
Логическая функция F задаётся выражением z ∧ ¬y ∧ (w → x). Дан частично заполненный фрагмент, содержащий неповторяющиеся строки таблицы истинности функции F. Определите, какому столбцу таблицы истинности соответствует каждая из переменных x, y, z, w.
В ответе напишите буквы x, y, z, w в том порядке, в котором идут соответствующие им столбцы (сначала буква, соответствующая первому столбцу; затем буква, соответствующая второму столбцу, и т. д.). Буквы в ответе пишите подряд, никаких разделителей между буквами ставить не нужно. Пример. Пусть задано выражение x → y, зависящее от двух переменных x и y, и фрагмент таблицы истинности:
Тогда первому столбцу соответствует переменная y, а второму столбцу соответствует переменная x. В ответе нужно написать: yx.
Отсюда видно, что переменная z должна всегда быть равна 1 (единице). Это первый столбец. Отрицание y тоже должно быть 1 (единицей), тогда просто y всегда будет 0 (нулём). Это второй столбец.
Логическая функция F задаётся выражением (x ∧ ¬y) ∨ (y ≡ z) ∨ w.
Дан частично заполненный фрагмент, содержащий неповторяющиеся строки таблицы истинности функции F. Определите, какому столбцу таблицы истинности соответствует каждая из переменных x, y, z, w.
В ответе напишите буквы x, y, z, w в том порядке, в котором идут соответствующие им столбцы (сначала — буква, соответствующая первому столбцу; затем — буква, соответствующая второму столбцу, и т. д.). Буквы в ответе пишите подряд, никаких разделителей между буквами ставить не нужно.
Пример. Пусть задано выражение x → y, зависящее от двух переменных x и y, и фрагмент таблицы истинности:
Тогда первому столбцу соответствует переменная y, а второму столбцу соответствует переменная x. В ответе нужно написать: yx.
Определяем главную логическую операцию ( «главную скрипку»), которая соединяет разные выражения. Видим, что это логическое сложение.
Во всех строчках таблицы функция принимает значение 0 (ноль). Значит, и каждое выражение должно принимать значение 0 (ноль).
Следующим слабым звеном является равносильность. Она должна «выдавать» 0 (ноль). Равносильность «выдаёт» 0 (ноль), когда переменные разные!
Проанализируем первый и второй столбец. В третьей строчке, и там, и там, стоит 1 (единица). Значит, первый и второй столбец не могут быть одновременно y и z (или z и y).
Рассмотрим второй и четвёртый столбец. Вторая строчка содержит одинаковое значение 0 (ноль), и там, и там. Значит, второй и четвёртый столбец не могут быть одновременно y и z (или z и y).
Таким образом, y и z (или z и y) будут столбцы первый и четвёртый! И теперь можно расставить недостающие значения в этих столбцах. Расставляем, чтобы были разные значения, а второй столбец получается x.
Тогда ответ будет равен yxwz.
Мощнейший метод для решения второго задания из ЕГЭ по информатике
Задача 3 (хороший уровень)
Логическая функция F задаётся выражением ((x → y ) ∧ (y → w)) ∨ (z ≡ ( x ∨ y)).
Дан частично заполненный фрагмент, содержащий неповторяющиеся строки таблицы истинности функции F. Определите, какому столбцу таблицы истинности соответствует каждая из переменных x, y, z, w.
В ответе напишите буквы x, y, z, w в том порядке, в котором идут соответствующие им столбцы (сначала — буква, соответствующая первому столбцу; затем — буква, соответствующая второму столбцу, и т. д.). Буквы в ответе пишите подряд, никаких разделителей между буквами ставить не нужно.
Пример. Пусть задано выражение x → y, зависящее от двух переменных x и y, и фрагмент таблицы истинности:
Тогда первому столбцу соответствует переменная y, а второму столбцу соответствует переменная x. В ответе нужно написать: yx.
«Главной скрипкой» в нашей функции является логическое сложение, потому что соединяет два выражения ((x → y ) ∧ (y → w)) и (z ≡ ( x ∨ y)).
Тогда каждое выражение должно равняться 0(нулю).
Теперь кульминация мощнейшего метода. У нас всего 4 переменных. Выпишем все комбинации для 4-х переменных. Таблица будет точно такая же, как мы писали в первом задании (её очень легко составить). Всего получается 16 комбинаций (16 = 2 4 ).
Теперь отметим зелёным плюсом те строчки, которые обращают выражение ((x → y ) ∧ (y → w)) в 0(ноль). Следующий шаг: Отметим галочкой те строчки, которые обращают в ноль второе выражение (z ≡ ( x ∨ y)) (Мы должны искать среди тех, которые уже отмечены плюсом).
При небольшой тренировке анализ подобных выражений занимает сущие секунды!
У нас получается 4 строчки, которые удовлетворяют нашей функции:
Отсюда видно, что переменная z может быть равна только 0(нулю)! Значит, она занимает третий столбец, потому что в остальных столбцах есть хотя бы одна 1(единица).
Переменная w имеет только одну 1(единицу). Значит, её ставим во второй столбец, потому что в первом и четвёртом уже по 2 единицы минимум, а третий уже занят z.
На этом всё! Сегодня рассмотрели теорию и основные методы для эффективного решения второго задания из ЕГЭ по информатике!
Пока!
Продолжаем наш видеокурс по подготовке к ЕГЭ по информатике 2022. Сегодня разоблачим второе задание!
Кто незнаком с основными логическими операциями, можете посмотреть прошлогоднюю статью по заданию 2 из ЕГЭ по информатике.
В этой статье будут раскрыты методики решения 2 задания через язык программирования Питон.
Будем перебирать для каждой логической переменной все возможные варианты в программе. А логическая переменная всего два значения может принимать: 1 или 0 (истину или ложь). Таким образом, если к примеру у нас 4 переменные, мы получим 2 4 =16 различных комбинаций.
Кто знаком с мощнейшим методом для 2 задания из ЕГЭ по информатике, о котором я рассказывал в прошлогодней статье, тот поймёт, что мы будем применять тот же самый мощнейший метод, но автоматизированный с помощью питона.
Нам нужно будет запрограммировать логическую функцию на языке Питон. Вот таблица, которая поможет это сделать.
Логическая операция | Представление в Питоне |
Отрицание ¬ | not() |
Логическое умножение ∧ | and |
Логическое сложение ∨ | or |
Следование A ⟶ B | not(A) or B |
Равносильность ≡ | == |
Перейдём к практике решения задач задания 2 с помощью языка программирования Python.
Миша заполнял таблицу истинности логической функции F
но успел заполнить лишь фрагмент из трёх различных её строк, даже не указав, какому столбцу таблицы соответствует каждая из переменных w, x, y, z.
Определите, какому столбцу таблицы соответствует каждая из переменных w, x, y, z.
В ответе напишите буквы w, x, y, z в том порядке, в котором идут соответствующие им столбцы (сначала буква, соответствующая первому столбцу; затем буква, соответствующая второму столбцу, и т.д.). Буквы в ответе пишите подряд, никаких разделителей между буквами ставить не нужно.
Пример. Функция F задана выражением ¬x \/ y, зависящим от двух переменных, а фрагмент таблицы имеет следующий вид.
В этом случае первому столбцу соответствует переменная y, а второму столбцу – переменная x. В ответе следует написать: yx.
Решать задачу будем с помощью шаблона на языке Python (Питон).
В задаче у нас 4 переменные, значит, формируем 4 вложенных цикла. В каждом цикле перебираем все возможные значения для конкретной переменной. Мы перебираем значения 0 и 1.
Функция должна выдавать всегда 1 (единицу, истину). Внутри всех циклов прописываем условие, которое срабатывает как раз на истину. В этом условии прописываем нашу функцию. Если наша функция будет выдавать истину, то мы распечатаем значения переменных, при которых это произошло. Если функция будет выдавать ложь, значит, ничего распечатано не будет.
Четыре вложенных цикла проверяют все возможные варианты (2 4 = 16 вариантов), и мы получим таблицу истинности, почти такую же, как нам и дали в условии задачи.
Так же вверху печатаем названия переменных, чтобы знать, какие значения каким переменным принадлежат.
Запустим программу, и на экране распечатается табличка:
В получившийся табличке может быть больше строчек, чем в условии. Так же при поиске переменных нельзя опираться на порядок, в котором идут нули и единицы в нашей табличке. А можно опираться лишь на количество нулей и единиц в строчках или столбцах.
Можно вычеркнуть первую строчку и последнюю, потому что в таблице, которую дали в условии, в каждой строчке есть хотя бы один ноль и хотя бы одна единица.
Сразу видно, что первый столбец принадлежит переменной x, только там могут быть все единицы.
Второй столбец принадлежит переменной w, только там могут быть все нули.
У нас остались две пустые клеточки в самой таблице. Нам нужно где-то поставить единицу, а где-то ноль, потому что у нас остались столбцы с двумя единицами и одним нулём, а так же с двумя нулями и одной единицей. Если мы в третий столбец поставим единицу, а в четвёртый ноль, то первая строчка и вторая будут совпадать.
А в условии сказано, что строки не должны повторяться. Поэтому нужно ноль и единицу расставить наоборот.
Получается, что в третий столбец идёт z, а в четвёртый y
Посмотрим, как решать задачи второго задания из ЕГЭ по информатике, когда функция выдаёт нули в таблице истинности.
Миша заполнял таблицу истинности функции (x ≡ ¬y) → ((x ∧ w) ≡ z), но успел заполнить лишь фрагмент из трёх различных её строк, даже не указав, какому столбцу таблицы соответствует каждая из переменных w, x, y, z.
Определите, какому столбцу таблицы соответствует каждая из переменных w, x, y, z.
В ответе напишите буквы w, x, y, z в том порядке, в котором идут соответствующие им столбцы (сначала буква, соответствующая первому столбцу; затем буква, соответствующая второму столбцу, и т.д.). Буквы в ответе пишите подряд, никаких разделителей между буквами ставить не нужно.
Пример. Функция F задана выражением ¬x \/ y, зависящим от двух переменных, а фрагмент таблицы имеет следующий вид.
В этом случае первому столбцу соответствует переменная y, а второму столбцу – переменная x. В ответе следует написать: yx.
Воспользуемся программой на языке Python.
От прошлой программы эта программа отличается только функцией!
В таблице видим, что функция должна выдавать ноль. Поэтому в условии мы функцию «оборачиваем» в not().
После == операцию not() мы заключили в скобки, чтобы не было синтаксической ошибки.
Получаем следующую таблицу истинности:
Разгадаем, где какая переменная находится.
Последнюю строку из нашей таблицы можно вычеркнуть, потому что, если мы вычеркнем другую строку, то не получится столбца, где все три единицы, а он должен быть.
Получается, что второй столбец достаётся переменной z.
В первом столбце должно быть две единицы. На эту роль подходит переменная y.
В нашей таблице нет строчки, где все единицы, значит, во второй строчке в пустом окошке выставляем ноль. И в этой строчке нулём обладает переменная x. Следовательно, в третьем столбце будет находится x.
А в последний столбец идёт переменная w по остаточному принципу.
А как Питон справится с более сложной функцией из примерного варианта ЕГЭ по информатике?
Задача (Сложная функция)
Логическая функция F задаётся выражением ((x → y ) ∧ (y → w)) ∨ (z ≡ ( x ∨ y)).
Дан частично заполненный фрагмент, содержащий неповторяющиеся строки таблицы истинности функции F. Определите, какому столбцу таблицы истинности соответствует каждая из переменных x, y, z, w.
В ответе напишите буквы x, y, z, w в том порядке, в котором идут соответствующие им столбцы (сначала — буква, соответствующая первому столбцу; затем — буква, соответствующая второму столбцу, и т. д.). Буквы в ответе пишите подряд, никаких разделителей между буквами ставить не нужно.
Пример. Пусть задано выражение x → y, зависящее от двух переменных x и y, и фрагмент таблицы истинности:
Тогда первому столбцу соответствует переменная y, а второму столбцу соответствует переменная x. В ответе нужно написать: yx.
Запрограммируем функцию на языке Python.
Запустим программу и расставим переменные по своим местам.
Переменная z может быть только в третьем столбце.
Во второй столбец идёт переменная w, только этот столбец может иметь одну единицу.
Посмотрим на строчку, где у w стоит единица. В этой же строчке и у x единица. Значит, x идёт в последний столбец, а y в первый столбец.
Тот же шаблон работает, когда у нас во втором задании три переменные.
(№ 1608) Логическая функция F задаётся выражением (¬x ∧ z) ∨ (¬x ∧ ¬y ∧ ¬z)
На рисунке приведён фрагмент таблицы истинности функции F, содержащий все наборы аргументов, при которых функция F истинна. Определите, какому столбцу таблицы истинности функции F соответствует каждая из переменных x, y, z.
Для трёх переменных шаблон на Питоне отлично работает.
Здесь и так понятно, куда какая переменная идёт.
Ответ: yxz
Посмотрим, как решать задачи из второго задания ЕГЭ по информатике, когда в таблице истинности разные значения у функции F.
Логическая функция F задаётся выражением (¬a ∨ b ∨ ¬c) ∧ (b ∨ ¬c). Определите, какому столбцу таблицы истинности функции F соответствует каждая из переменных a, b, c.
В ответе напишите буквы a, b, c в том порядке, в котором идут соответствующие им столбцы (без разделителей).
Источник задачи сайт К. Ю. Полякова: https://kpolyakov.spb.ru/
Когда такая ситуация, что функция имеет различные значения в таблице, мы можем проверить, какие значения переменных дают единицу у всей функции. А потом проверить, какие значения выдают ноль у всей функции, если это потребуется.
В таблице 6 строчек, в которых главная функция превращается в единицу. Далее эти строчки и будем рассматривать. У нас тоже получилось 6 строчек.
Переменная a имеет три единицы. Это второй столбец, потому что там три единицы.
Переменная b имеет четыре единицы, значит, она расположена в первом столбце.
Переменной c достаётся последний столбец.
Ещё одна интересная задача для подготовки к ЕГЭ по информатике 2022.
Логическая функция F задаётся выражением a ≡ b ∨ b → c.
На рисунке приведён частично заполненный фрагмент таблицы истинности функции F, содержащий неповторяющиеся строки. Определите, какому столбцу таблицы истинности функции F соответствует каждая из переменных a, b, c.
Источник задачи группа Евгения Джобса: https://vk.com/inform_web
Подвох заключается в том, что если мы переведём бездумно функцию на язык Питон, то получится a==b or not (b) or c. Но у нас существуют приоритеты для логических операций, которые описаны в прошлогодней статье по подготовке к ЕГЭ по информатике.
В начале должно обрабатываться или, которое было изначально. Затем должно обработаться следование, а потом равносильность. А если мы переведём формулу бездумно, порядок будет не правильный.
Операцию b ∨ b можно представить, как просто b. Ведь, если b принимает значение 0, тогда будет 0 ∨ 0 = 0. Если значение будет 1, то 1 ∨ 1 = 1. Поэтому формулу можно переписать следующим образом:
a ≡ b → c
a == ( not (b) or c)
В предыдущих задачах нам не приходилось думать над приоритетами, потому что везде были расставлены скобки. И в основном они уже расставлены в задачах второго задания из ЕГЭ по информатике.
Дальше решаем как обычно.
Последнюю строчку можно вычеркнуть из нашей таблицы, т.к. у нас в каждой строчке есть хотя бы один ноль.
Последний столбец занимает переменная a, т.к. только в последний столбец может влезть две единицы.
В строчке, где у a ноль, так же ноль и у переменной c. Значит, во второй столбец идёт переменная c. Если мы ноль поставим в первой строчке в первом столбце, то получится первый столбец из всех нулей. А такого у нас в таблице истинности нет.
Тогда переменная b в первом столбце.
В этом уроке мы поговорим о задании 4 из ЕГЭ по информатике 2022.
Задание 4 включает в себя понятие кодирование и декодирование информации.
Приступим к тренировочным заданиям из ЕГЭ по информатике 2022.
Для кодирования некоторой последовательности, состоящей из букв А, Б, В, Г, Д, Е. решили использовать неравномерный двоичный код, удовлетворяющий условию Фано. Для букв А, Б, В, Г использовали соответственно кодовые слова 00, 01, 100, 110. Укажите кратчайшее возможное кодовое слово для буквы Д, при котором код будет допускать однозначное декодирование. Если таких кодов несколько, укажите код с наименьшим числовым значением.
Примечание. Условие Фано означает, что ни одно кодовое слово не является началом другого кодового слова.
Используем приём Дерево Фано. Расставим на этом дереве те буквы, для которых уже известны кодовые слова.
Дерево рисуется обычно сверху вниз. В начале от дерева рисуются две ветки: ветка 0 и ветка 1. От каждой ветки можно нарисовать ещё две ветки, так же 0 и 1, и т. д.
Для удобства ветки с 1 будем направлять вправо, а ветки с 0 будем направлять влево.
В конце каждой ветки можно размещать буквы, но если мы разместили букву, то эта ветка блокируется, и от этой ветки больше нельзя делать новые ответвления.
Нам осталось закодировать (расположить на дереве) две буквы: Д и Е.
Мы можем нарастить ещё две ветки от точки 1-1. Тогда получится код 111. И от точки 1-0. Тогда получится код 101.
Для буквы Д нужно выбрать код с наименьшим числовым значением. Значит, для буквы Д выбираем код 101, а для буквы Е выбираем код 111.
Закрепим приём дерево Фано на ещё одной примерной задаче из ЕГЭ по информатике 2022.
Для кодирования некоторой последовательности, состоящей из букв Н, О, П, Р, С, Т, У, Ф решили использовать неравномерный двоичный код, удовлетворяющий условию, что ни одно кодовое слово не является началом другого кодового слова. Для букв Н, О, П, Р, С, Т использовали соответственно кодовые слова 10, 110, 010, 0110, 111, 0111. Укажите кратчайшее возможное кодовое слово для буквы У, при котором код будет допускать однозначное декодирование. Если таких кодов несколько, укажите код с наименьшим числовым значением.
Нам нужно закодировать ещё две буквы: У, Ф. У нас единственная возможность осталась прорастить ветку от точки 0. От этой точки проращиваем ветку 0 и от этой ветки проращиваем ещё две ветки 0 и 1.
Букву У размещаем на позиции 000, потому что для этой буквы нужно выбрать код с наименьшим числовым значением.
Ещё одна примерная задача из ЕГЭ по информатике 2022 является частым гостем в различных тренировочных вариантах.
По каналу связи передаются сообщения, содержащие только семь букв: А, Б, Д, Л, Е, И, Н. Для передачи используется двоичный код, удовлетворяющий условию Фано. Кодовые слова для некоторых букв известны: А – 110, Б – 01, И – 000. Какое наименьшее количество двоичных знаков потребуется для кодирования слова ДЕЛЕНИЕ?
Расставим на дереве Фано буквы, для которых известны коды.
Нам осталось расположить 4 буквы: Д, Л, E, Н.
Буква Е встречается три раза в слове ДЕЛЕНИЕ, значит, ей нужно постараться присвоить самый короткий код. По дереву видно, что можно букве Е присвоить код 10.
Буквы Д, Л, Н встречаются в слове ДЕЛЕНИЕ 1 раз. Одну букву можно разместить на позицию 111. Так же можно продлить ветку из точки 00, а затем от позиции 001 сделать два отростка. У нас получатся ещё два свободных места: 0011 и 0010.
Можно оставшиеся буквы разместить следующим образом:
Подсчитаем какое количество двоичных знаков потребуется для кодирования слова ДЕЛЕНИЕ.
3+2+4+2+4+3+2=20
Ответ: 20
Далее решим непростую задачу из тренировочных вариантов ЕГЭ по информатике 2022. Похожая задача была в сборнике С. С. Крылова в 2021 году.
По каналу связи передаются сообщения, содержащие только четыре буквы: М, Н, Р, Т; для передачи используется двоичный код, допускающий однозначное декодирование.
Для букв М, Н, Р используются такие кодовые слова: М: 00011, Н: 1001, Р: 01100.
Укажите кратчайшее кодовое слово для буквы Т, при котором код будет допускать однозначное декодирование. Если таких кодов несколько, укажите код с наименьшим числовым значением.
Нужно, чтобы код декодировался однозначно. Чтобы код декодировался однозначно, можно использовать условие Фано. Мы видим, что в уже известных кода не нарушается условие Фано. Узнаем код для буквы Т по дереву Фано. Отметим известные буквы.
Куда разместить букву Т? Чтобы кодовое слово было кратчайшее, разместим букву Т на позицию 11.
Сложность этой задачи заключается в том, что явно не указано, что нужно использовать условие Фано. Так же однозначное декодирование будет, если используется обратное условие Фано.
Обратное условие Фано: никакое кодовое слово не является окончанием другого кодового слова. Сообщения при использовании такого кода декодируются однозначно и только с конца.
Т. е. сообщения нужно такие раскодировать справа налево. Здесь про то, как будут раскодировать сообщения, ничего не сказано, поэтому мы должны проверить, какой код получится для буквы Т, если здесь используется обратное условие Фано.
Получилась следующая ситуация. Если кодовые слова будут удовлетворяют условию Фано, то для буквы Т можно написать кратчайшее кодовое слово 11 с минимальным числовым значением. Если кодовые слова будут удовлетворяют обратному условию Фано, то для буквы Т можно написать кратчайшее кодовое слово 10 с минимальным числовым значением.
И в том и в другом случае будет однозначное декодирование. Но мы выбираем тот случай, когда кодовое слово будет наименьшим числовым значением. Таким образом, в ответе напишем 10.
Разберём ещё один нюанс в подобных задах из ЕГЭ по информатике.
Задача (Ещё раз про однозначное декодирование)
По каналу связи передаются сообщения, содержащие только четыре буквы: М, О, С, Т; для передачи используется двоичный код, допускающий однозначное декодирование. Для букв Т, О, М используются такие кодовые слова: Т: 111, О: 0, М: 100. Укажите кратчайшее кодовое слово для буквы С, при котором код будет допускать однозначное декодирование. Если таких кодов несколько, укажите код с наименьшим числовым значением.
Здесь условие похоже на то, которое было в предыдущей задаче. Но обратное условие Фано здесь не применимо, т.к. код для буквы О является окончанием для кода буквы М.
Выбираем из двух вариантов: 110 и 101. Но останавливаемся на 101, т.к. это кодовое слово с наименьшим числовым значением.
Решим задачу, которая часто встречается в бумажных сборниках по подготовке к ЕГЭ по информатике.
Задача (код не удовлетворяет условию Фано)
По каналу связи передаются шифрованные сообщения, содержащие только пять латинских букв: A, B, С, D, E. Для передачи используется неравномерный двоичный код. Для некоторых букв известны кодовые слова: A: 01, B: 10, C: 11, D: 000.
Укажите самое короткое кодовое слово для буквы E, при котором код не будет удовлетворять условию Фано, при этом в записи самого этого слова должно использоваться более одного символа, а само слово не должно совпадать ни с одним из используемых слов для букв с известными кодами.
Если таких слов несколько, то укажите слово с наименьшим числовым значением.
Здесь код не должен однозначно декодироваться.
Подходит код 00, т.к. длина этого кодового слова больше чем 1 символ. Этот код не совпадает ни с одним кодом для известных букв. Этот код нарушает принцип условия Фано, видно, что он является началом кодового слова буквы D. И этот код имеет самое маленькое числовое значение.
В 4 задании из ЕГЭ по информатике 2022 не обязательно может попасться задача, связанная с условием Фано. Может просто быть задача на кодирование и декодирование информации.
Для кодирования букв X, К, Л, О, Д решили использовать двоичное представление чисел 0, 1, 2, 3 и 4 соответственно (с сохранением одного незначащего нуля в случае одноразрядного представления). Закодируйте последовательность букв ХОЛОДОК таким способом и результат запишите шестнадцатеричным кодом.
Распишем, как кодируются все буквы в двоичной системе. Ноль и один кодируются одним разрядом, поэтому к ним слева приписывается ноль, как написано в условии.
Буква | Десятичное Представление | Двоичное Представление |
Х | 0 | 00 |
К | 1 | 01 |
Л | 2 | 10 |
О | 3 | 11 |
Д | 4 | 100 |
Выписываем слово ХОЛОДОК и под ним кодовые слова букв.
Чтобы перевести из двоичной системы число в шестнадцатиричную систему, мы должны двоичные цифры разбить по четвёркам, начиная с правого края. Каждая четвёрка превращается в цифру в шестандцатиричной системе. Таблицу перевода четвёрок двоичных цифр в шестнадцатиричную систему можно посмотреть в этой статье.
Т.к. ЕГЭ по информатике сдаётся в компьютерной форме, то можно воспользоваться стандартным калькулятором в режиме программист.
На этом всё! Пусть Вам повезёт на ЕГЭ по информатике 2022.
Разбор демоверсии ЕГЭ по информатике 2022 (22-27 Задание)
Продолжаем анализ демонстрационного варианта ЕГЭ по информатике 2022.
В этой статье разберём с 22-ого по 27 задание.
ЕГЭ по информатике 2022 будет повержено!
Ниже на четырёх языках программирования записан алгоритм. Получив на вход число x, этот алгоритм печатает два числа: L и M. Укажите наибольшее число x, при вводе которого алгоритм печатает сначала 4, а потом 5.
Решение данного задания будет похоже на решение 6 задания из ЕГЭ по информатике 2022.
С помощью перебора на языке Python найдём при каких значениях переменная L=4 И переменная M=5 в конце программы.
Наибольшее значение равно 49.
Исполнитель преобразует число на экране.
У исполнителя есть две команды, которым присвоены номера:
Программа для исполнителя – это последовательность команд. Сколько существует программ, для которых при исходном числе 1 результатом является число 20, и при этом траектория вычислений содержит число 10?
Траектория вычислений программы – это последовательность результатов выполнения всех команд программы. Например, для программы 121 при исходном числе 7 траектория будет состоять из чисел 8, 16, 17.
Решим задачу c помощью шаблона на языке Python.
Если число x достигло пункта назначения, то возвращаем 1. Если оно перескочило y, то возвращаем 0. А если ещё не дошло до y, то продолжаем вычисления с помощью рекурсии.
У нас число 10 обязательное, поэтому разбиваем функцию следующим образом F(1, 10)*F(10, 20), через умножение. Это и будет ответ. Получается 28.
Текстовый файл состоит из символов P, Q, R и S.
Определите максимальное количество идущих подряд символов в прилагаемом файле, среди которых нет идущих подряд символов P. Для выполнения этого задания следует написать программу.
Напишем решение на языке Python.
Подсчитываем символы, пока не встретилась комбинация двух P подряд. Как только встретилась данная комбинация, сбрасываем счётчик на 1. Здесь мы сбрасываем счётчик на значение 1, чтобы учесть один символ, которые находится в самой комбинации PP. И в начале мы тоже устанавливаем счётчик в значение 1 по этой же причине.
Мы проходим в цикле for до длины строки минус один. Значение 1 в счётчике при сбросе и в начале программы так же компенсирует и тот момент, что мы не подсчитываем последний символ!
При изменении счётчика, сохраняем максимальное значение в переменной mx
Если бы у нас была вместо PP другая комбинация, состоящая к примеру из 5 символов, то мы бы тогда в начале и при сбросе писали в счётчик значение 5-1=4.
В этой задаче получается ответ 188.
Пусть M – сумма минимального и максимального натуральных делителей целого числа, не считая единицы и самого числа. Если таких делителей у числа нет, то значение M считается равным нулю.
Напишите программу, которая перебирает целые числа, бо́льшие 700 000, в порядке возрастания и ищет среди них такие, для которых значение M оканчивается на 8. Выведите первые пять найденных чисел и соответствующие им значения M.
Формат вывода: для каждого из пяти таких найденных чисел в отдельной строке сначала выводится само число, затем – значение М. Строки выводятся в порядке возрастания найденных чисел.
Количество строк в таблице для ответа избыточно.
На ЕГЭ по информатике 2022 удобно писать программы на языке Python.
В данной программе перебираются числа в цикле for, начиная с 700001.
Переменная b-считается наибольшим делителем числа i. Затем, с помощью ещё одного цикла for перебираются числа с 2 до корня числа i (включительно). Ищем тем самым наименьший делитель.
Если до корня числа включительно не встретился ни один делитель, значит, у числа нет делителей, кроме 1 и самого числа.
Пусть у нас есть число A. Если у этого числа есть делитель d1, то он находится до корня этого числа. А вот то число (так же делитель), на которое умножается это число d1, чтобы получить A, будет находиться после корня A.
Таким образом, первый найденный делитель будет являться наименьшим делителем. А вот делительный, который находится в паре с наименьшим делителем, будет наибольшим.
После того, как мы нашли наименьший делитель (он будет сидеть в переменной j) и наибольший делитель b, выходим из второго цикла for.
Если переменная b осталась равна нулю, то, значит, у числа i нет указанных делителей, и переменная M должна равняться 0. Если b не равна нулю, то M=j+b.
Проверить, на что оканчивается число, можно узнав остаток от деления числа на 10.
Переменная count следит, чтобы было распечатано ровно 5 чисел, которые удовлетворяют условию задачи.
Ответ:
700005 | 233338 |
700007 | 100008 |
700012 | 350008 |
700015 | 140008 |
700031 | 24168 |
Системный администратор раз в неделю создаёт архив пользовательских файлов. Однако объём диска, куда он помещает архив, может быть меньше, чем суммарный объём архивируемых файлов.
Известно, какой объём занимает файл каждого пользователя.
По заданной информации об объёме файлов пользователей и свободном объёме на архивном диске определите максимальное число пользователей, чьи файлы можно сохранить в архиве, а также максимальный размер имеющегося файла, который может быть сохранён в архиве, при условии, что сохранены файлы максимально возможного числа пользователей.
В первой строке входного файла находятся два числа: S – размер свободного места на диске (натуральное число, не превышающее 10 000) и N – количество пользователей (натуральное число, не превышающее 1000). В следующих N строках находятся значения объёмов файлов каждого пользователя (все числа натуральные, не превышающие 100), каждое – в отдельной строке.
Запишите в ответе два числа: сначала наибольшее число пользователей, чьи файлы могут быть помещены в архив, затем – максимальный размер имеющегося файла, который может быть сохранён в архиве, при условии, что сохранены файлы максимально возможного числа пользователей.
Пример входного файла:
При таких исходных данных можно сохранить файлы максимум двух пользователей. Возможные объёмы этих двух файлов – 30 и 40, 30 и 50 или 40 и 50. Наибольший объём файла из перечисленных пар – 50, поэтому ответ для приведённого примера:
Решим задачу с помощью Excel. Чтобы открыть текстовый файл в программе Excel, выбираем Файл->Открыть, выбираем нужную папку и указываем, чтобы в папке были видны все типы файлов.
И выбираем наш текстовый файл.
Выскочит окно Мастер текстов (импорт). Здесь оставляем выбранный пункт с разделителями и кликаем Далее.
В следующем окне поставим ещё галочку пробел. В итоге Символами-разделителем будут знак табуляции и пробел.
Кликаем ещё раз Далее и Готово.
Наши данные вставятся, как нужно!
Число 8200 (размер свободного места) нужно запомнить или записать на черновике. Число 970 (количество файлов) нам в принципе не нужно при таком подходе решения.
1. Найдём максимальное количество файлов.
Выделяем весь столбец A и сортируем его по возрастанию.
Теперь выделяем ячейки сверху мышкой, а справа в нижней части программы будет показываться сумма выделенных ячеек.
Мы должны выделить максимальное количество ячеек, но чтобы сумма не превышала число 8200.
Получается максимальное количество файлов, которое можно сохранить, равно 568.
2. Найдём максимальный размер файла при максимальном количестве файлов.
Если мы сохраним максимальное количество файлов, то у нас ещё останется свободное место 8200-8176=24, т.к. сумма выделенных ячеек равна 8176.
Мы можем заменить наибольший файл (последняя выделенная ячейка равная 29) ещё большим файлом, размер которого не превышает 24+29=53.
Если покрутим таблицу вниз, то найдём такой файл размером 50. Это и будет наибольший файл при максимальном количестве файлов.
Ответ:
568 | 50 |
Дана последовательность из N натуральных чисел. Рассматриваются все её непрерывные подпоследовательности, такие что сумма элементов каждой из них кратна k = 43. Найдите среди них подпоследовательность с максимальной суммой, определите её длину. Если таких подпоследовательностей найдено несколько, в ответе укажите количество элементов самой короткой из них.
Даны два входных файла (файл A и файл B), каждый из которых содержит в первой строке количество чисел N (1 ≤ N ≤ 10 000 000). Каждая из следующих N строк содержит одно натуральное число, не превышающее 10 000.
Пример организации исходных данных во входном файле:
В ответе укажите два числа: сначала значение искомой суммы для файла А, затем – для файла B.
Предупреждение: для обработки файла B не следует использовать переборный алгоритм, вычисляющий сумму для всех возможных вариантов, поскольку написанная по такому алгоритму программа будет выполняться слишком долго.
Напишем программу на Python.
Тогда кандидатом для ответа будет цепочка, которая получается, если от цепочки с суммой s «отрезать» цепочку с суммой из массив sum_ost, которая соответствует текущему остатку (переменная ost).
В массив sum_ost для каждого остатка записывается сумма только один раз, т.к. нам нужна именно минимальная сумма для каждого остатка, чтобы кандидат для ответа был как можно больше.
В начале массив sum_ost инициализируется очень большим числом 1096594666. Это число больше, чем сумма всех элементов в файле. Оно было найдено до основного решения, с помощью простой программы.
В процессе решения мы ищем среди кандидатов для ответа цепочку с максимальной суммой. Делаем это стандартным образом: кто больше, то и победил. Мы инициализируем большими числом 1096594666 элементы массива sum_ost для того, чтобы условие нормально сработало, когда в массиве sum_ost ещё нет суммы для данного остатка.
Так же мы сохраняем индексы элементов в массив k, когда записываем суммы для различных остатков в массив sum_ost. Это делается для того, чтобы можно было вычислить длину цепочки.
Сегодня посмотрим 6 задание из ЕГЭ по информатике 2022.
В этом уроке мы будем использовать метод перебора для решения различных задач из 6 задания ЕГЭ по информатике 2022.
Решать задачи будем на языке Python.
Определите, при каком наименьшем введённом значении переменной s программа выведет число 23. Для Вашего удобства программа представлена на трёх языках программирования.
Паскаль | Python | C++ |
---|
Источник задачи: https://kpolyakov.spb.ru/
Решим задачу с помощью перебора.
Будем подставлять каждое число в диапазоне от 1 до 1000 в наш алгоритм с помощью цикла for. Узнаем, при каких значениях на выходе программа будет печатать число 23.
Вместо команды input() присваиваем в переменную n очередное число. В конце программы вместо команды print() пишем условие. Печатаем только те значения переменной i, которые приводят к тому, что в переменной n будет нужный результат (число 23).
Программа напечатает следующие числа:
Самое маленькое число, которое подходит, это 256.
Ещё одна задача-ловушка из 6 задания ЕГЭ по информатике 2022.
Определите, сколько существует целых положительных значений, подаваемых на вход программе, при которых программа выведет 27.
Паскаль | Python | C++ |
---|
В этой программе подвох заключается в том, что, если мы будем перебирать числа от 1 до 1000, то программа зависнет и ничего не напечатает.
В таких случаях можно попробовать перебрать числа с 1000 до 1.
Третий параметр «-1» для цикла for означает, что мы перебираем числа с 1000 до 1 в обратном порядке.
Программа напечатает числа с 80 до 27.
Если проверить на небольших числа, то мы должны прибавить 1 к разнице двух чисел.
Закрепим метод перебора в 6 задании из ЕГЭ по информатике 2022.
(А.Г. Минак) Определите, при каком введённом значении переменной s программа выведет число 16.
Паскаль | Python | C++ |
---|
Источник задачи: https://kpolyakov.spb.ru/
Здесь справляется стандартный перебор от 1 до 1000.
Сегодня научимся решать 12 задание из ЕГЭ по информатике 2022.
В основном 12 задание решается шаблонно с помощью Питона, но есть и задачи, в которых нужен особый подход.
Перейдём к классической задачке из ЕГЭ по информатике 2022.
Исполнитель Редактор получает на вход строку цифр и преобразовывает её. Редактор может выполнять две команды, в обеих командах v и w обозначают цепочки символов.
1. заменить (v, w)
2. нашлось (v)
Первая команда заменяет в строке первое слева вхождение цепочки v на цепочку w. Если цепочки v в строке нет, эта команда не изменяет строку. Вторая команда проверяет, встречается ли цепочка v в строке исполнителя Редактор. Дана программа для исполнителя Редактор:
Какая строка получится в результате применения приведённой выше программы к строке, состоящей из 239 идущих подряд цифр 6? В ответе запишите полученную строку.
Решим задачу с помощью программы на Python’е.
Здесь в начале формируется строка, состоящая из 239 шестёрок. Потом эта строка подаётся в программу. Программу переводим с русского языка на язык Питон.
Третий параметр в функции replace обозначает, что замену нужно производить один раз. Это в точности соответствует предложенной функции заменить.
Ответ получается 2266.
В следующей типовой задаче из ЕГЭ по информатике 2022 нужно сообразить один момент.
Исполнитель Редактор получает на вход строку цифр и преобразовывает её. Редактор может выполнять две команды, в обеих командах v и w обозначают цепочки цифр.
1. заменить (v, w)
2. нашлось (v)
Первая команда заменяет в строке первое слева вхождение цепочки v на цепочку w, вторая проверяет, встречается ли цепочка v в строке исполнителя Редактор. Если она встречается, то команда возвращает логическое значение «истина», в противном случае возвращает значение «ложь». Дана программа для исполнителя Редактор:
На вход приведённой ниже программе поступает строка, содержащая 50 цифр 1, 50 цифр 2 и 50 цифр 3, расположенных в произвольном порядке. Запишите без разделителей символы, которые имеют порядковые номера 10, 90 и 130 в получившейся строке.
Здесь сказали, что начальный порядок цифр в строке неизвестен. А просят написать конкретные данные на выходе. Отсюда делаем вывод, что любой порядок в начале приводит к одному и тому же результату.
В строке заведём цифры по порядку: в начале единицы, потом двойки, потом тройки.
Чтобы обратится к конкретному символу в строке, используем конструкцию s[позиция символа]. Но нумерация начинается с нуля.
В ответе запишем 132.
В следующей примерной задаче из ЕГЭ по информатике 2022 опять используем Питон.
Исполнитель Редактор получает на вход строку цифр и преобразовывает её. Редактор может выполнять две команды, в обеих командах v и w обозначают цепочки символов.
1. заменить (v, w)
2. нашлось (v)
Первая команда заменяет в строке первое слева вхождение цепочки v на цепочку w. Если цепочки v в строке нет, эта команда не изменяет строку. Вторая команда проверяет, встречается ли цепочка v в строке исполнителя Редактор. Дана программа для исполнителя Редактор:
Известно, что исходная строка содержала более 70 единиц и не содержала других цифр. Укажите минимально возможную длину исходной строки, при которой в результате работы этой программы получится строка, содержащая максимально возможное количество единиц.
Здесь мы попробуем с помощью программы формировать строчки с разной длиной и смотреть, какое количество единиц получится на выходе.
Посмотрев результаты, понимаем, что максимальное количество единиц в окончательной строке равно 4. А минимальное количество единиц в изначальной строке, чтобы получилось в итоге 4 единицы, равно 73.
Ещё один частый гость в тренировочных вариантах из ЕГЭ по информатике 2022.
Задача (Сумма цифр + непонятный символ)
Исполнитель Редактор получает на вход строку цифр и преобразовывает её. Редактор может выполнять две команды, в обеих командах v и w обозначают цепочки цифр.
1. заменить (v, w)
2. нашлось (v)
Первая команда заменяет в строке первое слева вхождение цепочки v на цепочку w, вторая проверяет, встречается ли цепочка v в строке исполнителя Редактор. Если она встречается, то команда возвращает логическое значение «истина», в противном случае возвращает значение «ложь». Дана программа для исполнителя Редактор:
На вход приведённой ниже программе поступает строка, начинающаяся с символа «>», а затем содержащая 28 цифр 1, 18 цифр 2 и 35 цифр 3, расположенных в произвольном порядке. Определите сумму числовых значений цифр строки, получившейся в результате выполнения программы. Так, например, если результат работы программы представлял бы собой строку, состоящую из 50 цифр 4, то верным ответом было бы число 200.
Здесь снова результат будет одним и тем же независимо от того, как будут расположены числа в начале.
Чтобы найти сумму цифр, мы пробегаем по всей строке с помощью цикла range. Если символ не равен «>», то превращаем его в число с помощью функции int() и суммируем в переменную sm.
Задача (Трудно запрограммировать)
Исполнитель Редактор получает на вход строку цифр и преобразовывает её. Редактор может выполнять две команды, в обеих командах v и w обозначают цепочки цифр.
1. заменить (v, w)
2. нашлось (v)
Первая команда заменяет в строке первое слева вхождение цепочки v на цепочку w, вторая проверяет, встречается ли цепочка v в строке исполнителя Редактор. Если она встречается, то команда возвращает логическое значение «истина», в противном случае возвращает значение «ложь». Дана программа для исполнителя Редактор:
Исходная строка содержит 23 единицы и 5 двоек, других цифр нет, точный порядок расположения цифр неизвестен. Какую наибольшую сумму цифр может иметь строка, которая получится после выполнения программы?
Здесь не важно, по какой ветке будет идти программа, прирост в сумме цифр будет всегда равен 1. Поэтому можно расположить в начале только 1, а затем все двойки в исходной строке.
Одиннадцать раз символы ’11’ превратятся в ‘3’. Тогда 11 * 3 = 33. Останутся цифры ‘122222’. Их сумма равна 11.
В ответе получается 33 + 11 = 44.
Исполнитель Редактор получает на вход строку цифр и преобразовывает её. Редактор может выполнять две команды, в обеих командах v и w обозначают цепочки цифр.
1. заменить (v, w)
2. нашлось (v)
Первая команда заменяет в строке первое слева вхождение цепочки v на цепочку w, вторая проверяет, встречается ли цепочка v в строке исполнителя Редактор. Если она встречается, то команда возвращает логическое значение «истина», в противном случае возвращает значение «ложь». Дана программа для исполнителя Редактор:
Посмотрим, во что превращается 1:
Посмотрим, во что превращается 2:
Т.е. в окончательном результате двойки могли возникнуть только из 1. Двоек получается в два раза больше, чем было изначально единиц.
Теперь попробуем решить задачу с помощью программы. Здесь неизвестно количество единиц и двоек. Поэтому придётся создавать вложенные циклы. Предположим, что количество единиц и двоек меньше 100, чтобы программа отработала за адекватное время.
Получается количество двоек равно восьми.
Решим задачу про Робота, которая в последнее время редко встречается на экзамене по информатике.
вверх | вниз | влево | вправо |
Четыре команды проверяют истинность условия отсутствия стены у каждой стороны той клетки, где находится РОБОТ:
сверху свободно | снизу свободно | слева свободно | справа свободно |
В конструкциях ПОКА и ЕСЛИ условие может содержать команды проверки, а также слова И, ИЛИ, НЕ, обозначающие логические операции.
Если РОБОТ начнёт движение в сторону находящейся рядом с ним стены, то он разрушится и программа прервётся.
Сколько клеток лабиринта соответствуют требованию, что, начав движение в ней и выполнив предложенную программу, РОБОТ уцелеет и остановится в закрашенной клетке (клетка F6)?
|
Решение:
Проанализируем внимательно программу для Робота.
В программе есть главный цикл, внутри цикла проверяется сначала возможность двигаться вправо. Если есть такая возможность, робот будет двигаться до упора с помощью ещё одного цикла. Потом после того как больше нет возможности двигаться вправо, с помощью основного цикла и записанного условия будет перемещаться вниз, пока есть такая возможность.
Если нет возможности двигаться ни вправо, ни вниз, то Робот завершает программу.
Поняв этот алгоритм не сложно отметить те клетки, стартовав с которых, Робот остановится на клетке F6.
Ещё раз, Робот до упору будет двигаться вправо, потом до упору вниз, насколько это возможно. Вот алгоритм в двух словах.
Важно в этих задачах простыми словами сформулировать алгоритм, чтобы можно было проверять целые блоки лабиринта.
Количество клеток, удовлетворяющие условию будет 21.
12 Задание из ЕГЭ по информатике 2021 выглядит обычно объёмным, но на деле описываются обычные конструкции (Циклы и условия), которые есть в большинстве языках программирования.
означает, что последовательность команд будет выполнена указанное число раз (число должно быть натуральным).
Чертёжнику был дан для исполнения следующий алгоритм (число повторений и величины смещения в первой из повторяемых команд неизвестны):
Эта задача похоже на задачу Кузнечик, которую рассматривали в 5 задании.
Напишем для переменной x уравнение.
Всё выражение приравниваем к нулю, т.к. Чертёжник возвращается в исходную точку, т.е. как ни ходил Чертёжник, он никуда в итоге не сдвинулся.
Нужно подобрать x и n, чтобы равенство было верным.
Число n может быть 27, 9, 3, 1. Нам нужно выбрать число n, как можно больше.
Видим, что нельзя подобрать такое целое число для 27, чтобы при умножении получалось 63.
Мы подобрали все нужные числа и нашли наибольшее число n=9.
Некоторые формулировки задач были взяты с сайтов:
Счастливых экзаменов по информатике!
Урок посвящён 11 заданию из ЕГЭ по информатике нового формата 2022. Проанализируем основные примеры и научимся решать это задание!
В 11 задании из ЕГЭ по информатике часто даются задачи на умение работать с количеством информации.
Приступим к делу! Раньше это задание было под номером тринадцать.
Задача (Демонстрационный вариант ЕГЭ по информатике, 2018)
При регистрации в компьютерной системе каждому пользователю выдаётся пароль, состоящий из 10 символов. В качестве символов используют прописные буквы латинского алфавита, т.е. 26 различных символов. В базе данных для хранения каждого пароля отведено одинаковое и минимально возможное целое число байт. При этом используют посимвольное кодирование паролей, все символы кодируют одинаковым и минимально возможным количеством бит. Определите объём памяти (в байтах), необходимый для хранения данных о 50 пользователях. В ответе запишите только целое число – количество байт.
У каждого пользователя есть пароль, состоящий из 10 символов. Это значит, длина пароля 10 символов!
И в каждую ячейку мы может выбрать символ из 26 букв!
Здесь важно различать длину пароля и количество символов из которых пользователь выбирает для каждой ячейки пароля.
Теперь нужно определить: сколько бит занимает одна ячейка (1 символ пароля!).
Когда речь идёт о количестве бит, применяем формулу, которую мы использовали в 7 задании из ЕГЭ по информатике. Там мы кодировали цвета для одного пикселя, а здесь нужно закодировать 26 букв для одного поля пароля.
Целого числа нету для i (количества бит), чтобы равенство было верным. Значит берём столько количество бит, сколько точно будет достаточно, чтобы закодировать 26 букв (символов).
Получаем одна ячейка (одно поле) пароля занимаем 5 бит! А в пароле их 10! Значит, весь пароль будет занимать:
Vпароля = 5 бит * 10 символов = 50 бит (в одном пароле!)
В условии сказано: для хранения каждого пароля отведено одинаковое и минимально возможное целое число байт. Это означает, что мы не может выделять память по одному биту. Память выделяется блоками по 8 бит (по одному байту).
Если взять 7 блоков по 8 бит (1 байту), то нам хватит этого на один пароль.
7 блоков (байт) * 8 бит = 56 бит > 50 бит
Таким образом, на 1 пароль потребуется 7 байт!
Тогда на 50 пользователей потребуется:
50 пользователей * 7 байт = 350 байт (для 50 пользователей).
Ответ: 350
Разберём задачу, которая была на реальном экзамене в Москве
Задача (ЕГЭ по информатике, 2020, Москва)
Здесь длина пароля составляет 11 символов!
Найдём сколько бит занимает одна ячейка пароля.
Найдём сколько бит нужно на весь пароль.
Vпароля = 6 бит * 11 символов = 66 бит (в одном пароле!)
Теперь найдём, а сколько байт нужно на 1 пароль:
9 * 8 бит = 72 бит > 66 бит
Следовательно, 9 байт достаточно, чтобы покрыть 66 бит на 1 пароль.
Сказано, что для 30 сотрудников выделено 750 байт. Подсчитаем, сколько байт будет выделено на одного сотрудника.
Vпользователя = 750 байт / 30 = 25 байт (приходится на одного пользователя)
Мы выяснили, что на пароль из этих 25 байт потребуется 9 байт. Тогда на дополнительную информацию о каждом пользователе потребуется:
Это и будет ответ.
Ещё один важный пример из запасов тренировочных задач ЕГЭ по информатике.
В велокроссе участвуют 48 спортсменов. Специальное устройство регистрирует прохождение каждым из участников промежуточного финиша, записывая его номер с использованием минимально возможного количества бит, одинакового для каждого спортсмена. Какой объём памяти будет использован устройством, когда все спортсмены прошли промежуточный финиш? (Ответ дайте в байтах.)
Узнаем сколько бит потребуется выделить на каждого спортсмена, чтобы была возможность записать любой номер от 1 до 48.
На рисунке показано, как может происходить кодирование чисел. Например, для двух номеров потребуется 1 бит (2 1 = 2), для четырёх номеров потребуется два бита (2 2 = 4). Нам нужно закодировать 48 чисел! Причём для каждого участника отведено одинаковое количество бит!
Получается 6 бит потребуется для того, чтобы была возможность записать любой номер от 1 до 48 для каждого спортсмена. Если взять пять бит, то мы будем иметь возможность записать номера только от 1 до 2 5 = 32 для каждого спортсмена (этого не хватает).
Т.к. все участники пересекли финиш, а на каждого участника выделено по 6 бит, то получается:
6 бит * 48 = 288 бит = 36 байт
Ответ: 36
Найдём сколько бит потребуется для кодирования 4-х букв.
N = 2 i = 2 4 бита = 16 > 12
4 бита хватит для кодирования 12 букв. Всего таких ячейки 4! Поэтому в одном номере на все буквы уйдёт 4 * 4 бита = 16 бит.
Найдём сколько бит потребуется на кодирование 3 ячеек, где находятся цифры.
Для кодирования одной ячейки, где находится цифра, потребуется 3 бита.
Все цифры в одном номере будут закодированы 3 бита * 3 = 9 битами.
Всего на один номер уйдёт 16 бит + 9 бит = 25 бит.
Найдём сколько байт потребуется для кодирования одного номера.
4 * 8 бит (1 байт) = 32 бита > 25 бит
4-х байт достаточно, чтобы закодировать 25 бит. Если взять 3 байта, то 3 * 8 бит (1 байт) = 24 бита. Этого будет не достаточно.
Найдём количество байт, которое нужно для кодирования 160 автомобилей
160 автомобилей * 4 байта = 640 байт
Это и будет ответ.
Метеорологическая станция ведет наблюдение за влажностью воздуха. Результатом одного наблюдения является целое число от 0 до 100%, записываемое при помощи минимально возможного количества бит. Станция сделала 800 измерений. Определите информационный объем результатов наблюдений. (Ответ дайте в байтах.)
Здесь, нужно закодировать сто одно число (от 0 до 100). Ситуация похоже на ту, где мы кодировали номера спортсменов.
Получается, что 7 бит потребуется, чтобы полностью закодировать 101 число.
Всего было сделано 800 таких измерений
800 * 7 бит = 5600 бит = 700 байт
Ответ: 700
На этом всё! Удачи при решении 11 задания на ЕГЭ по информатике!
Привет! Сегодня будем учится решать 24 задание из ЕГЭ по информатике 2021.
Двадцать четвёртое задание из ЕГЭ по информатике нацелено на обработку символьной информации.
В этом уроке будем решать задачи 24 задания с помощью языка программирования Pascal.
Перейдём к Демонстрационному варианту из ЕГЭ по информатике 2021.
Задача (Задание 24, Демонстрационный вариант 2021)
Текстовый файл состоит не более чем из 10 6 символов X, Y и Z.
Определите максимальное количество идущих подряд символов, среди которых каждые два соседних различны.
Для выполнения этого задания следует написать программу.
В начале посмотрим, как считать посимвольно файл.
В данном примере сам текстовый файл должен находиться по адресу: «c:\24.txt».
В цикле while с помощью команды read(f, c) считывается из файла очередной символ в переменную c и распечатывается на экран с помощью команды writeln(c).
Т.к. количество символов большое в этом файле, убедившись, что считывание происходит нормально, можно нажать на кнопку «Завершить».
В данной задаче нужно посчитать, на сколько длинная цепочка символов есть в нашем файле, в которой не идут два подряд одинаковых символа.
Алгоритм будет следующий: Берём символ, сравниваем его со следующим, если они разные, то добавляем к счётчику 1. Счётчик начинает работать с 1, чтобы засчитать самый первый символ. Если символы одинаковые, то сбрасываем счётчик на 1 (первоначальное значение).
Таким образом, у нас будет разная длина цепочек не повторяющихся символов в нашем файле. Но нам нужно в ответе написать наибольшую длину. Для этого мы будем использовать механизм для нахождения максимального значения, который был описан в статье по 17 заданию из ЕГЭ по информатике 2021.
Напишем программу на языке Pascal, которая решает нашу задачу.
После запуска программы на экране высветится число 35.
Следующая тренировочная задача из 24 задания ЕГЭ по информатике 2021.
Задача (Последовательность одного символа)
Текстовый файл состоит не более чем из 10 6 символов L, D и R. Определите длину самой длинной последовательности, состоящей из символов R. Хотя бы один символ R находится в последовательности.
Для выполнения этого задания следует написать программу. Ниже приведён файл, который необходимо обработать с помощью данного алгоритма.
Здесь логика следующая: В цикле считываем очередной символ. Если это символ R, то к счётчику прибавляем 1. Если встретили не символ R, то счётчик сбрасываем на ноль. Попутно в переменной max сохраняем максимальное значение для счётчика.
Ещё одна задача на понимание из 24 задания ЕГЭ по информатике 2021.
Задача (Последовательность трёх символов)
Текстовый файл состоит не более чем из 10 6 символов X, Y и Z. Определите максимальную длину цепочки вида XYZXYZXYZ. (составленной из фрагментов XYZ, последний фрагмент может быть неполным).
Для выполнения этого задания следует написать программу. Ниже приведён файл, который необходимо обработать с помощью данного алгоритма.
Пусть в начале показания счётчика равно нулю. Если мы находим нужный нам символ в нужной последовательности, то прибавляем к счётчику 1. Если последовательность сбивается, то ставим счётчик в ноль.
На рисунке представлен данный алгоритм. В нижней строке указано показание счётчика в момент анализа символа.
На данном рисунке максимальная длина цепочки нужных символов равна 9.
Видим, что для символа X, когда он находится на своём месте, остаток от деления значения счётчика на 3 равен 0.
Для символа Y, когда данный символ находится на своём месте, остаток от деления значения счётчика на 3 равен 1.
Для символа Z, когда данный символ находится на своём месте, остаток от деления значения счётчика на 3 равен 2.
Мы смотрим остаток от деления на 3, потому что у нас длина звена равна трём (XYZ).
Таким образом, мы и наш анализ очередного символа привяжем к показанию счётчика:
Важный момент: Если нужную цепочку прервал символ X, то нужно счётчик сразу выставить в 1, иначе может произойти такая ошибка:
Т.е. первые три нужных символа в цепочке алгоритм не засчитал.
Поэтому мы не просто сбрасываем счётчик в ноль, а прописываем условие:
Продолжаем набирать обороты в 24 задании из ЕГЭ по информатике 2021.
Задача (Проверяем соседей символа)
Текстовый файл состоит не более чем из 10 6 символов A, B и C.
Определите максимальное количество идущих подряд символов, каждый из которых имеет отличное значение от своих соседей. Первый и последний символ в строке не могут входить в искомую последовательность.
Для выполнения этого задания следует написать программу.
Задача похожа на демонстрационный вариант. Здесь три символа участвуют в каждой итерации.
Посмотрим ещё не маловажные примеры из 24 задания ЕГЭ по информатике 2021.
Сколько пар символов в строке являются симметричными? Симметричной парой называют такие два символа, которые расположены на одинаковом удалении от концов строки.
Например, в строке mdtdeeftkm три симметричных пары – mm, tt и ee.
Здесь удобнее использовать другой шаблон для считывания символов.
Здесь есть строка s, в которой находятся все символы из нашего файла. В цикле for можно перебрать каждый символ и проанализировать его.
Удобство данного метода состоит в том, что мы может сразу посмотреть, какие символы находятся в середине строки или в конце.
Чтобы посмотреть последний символ строки, нужно обратиться к элементу a[Length(s)].
Теперь легко написать программу для нашей задачи:
Проходим в цикле for до половины строки (Length(s) div 2) и анализируем симметричные символы с обеих концов строки.
Если символы равны, то прибавляем к счётчику 1.
Текстовый файл состоит не более чем из 10 6 заглавных латинских букв (A..Z). Текст разбит на строки различной длины. Определите количество строк, в которых встречается комбинация F?O, где вопросительный знак обозначает один любой символ.
Чтобы считать файл построчно, можно использовать следующий шаблон:
Данный фрагмент кода будет печатать поочерёдно все строки из файла c:\24_5.txt.
Обратите внимание в данном шаблоне на тип данных переменной f.
Когда мы считывали по одному символу, для переменной f был тип данных file of char.
Когда мы считываем построчно, для переменной f тип данных выбираем text.
Так же команда для считывания строки становится readln(f, s);. Переменная s имеет тип string.
Напишем решение для данной задачи:
После считывания очередной строки, мы проверяем с помощью цикла for, есть ли комбинация указанных символов. Если есть, прибавляем к счётчику 1 и выходим из цикла for с помощью команды break.
На этом всё! Удачи на ЕГЭ по информатике.
Всем привет! Вот мы и добрались до задание 3 из ЕГЭ по информатике 2022 года.
Третье задание направлено на поиск информации в реляционных базах данных.
В этом задании даются файлы с разными расширениями, но мы будем решать задачу в программе Excel.
Задача (База сайта по робототехнике)
В файле приведён фрагмент базы данных «Сайт по робототехнике» о категориях, статьях и комментариях. База данных состоит из трёх таблиц.
Таблица «Категории» содержит записи о категориях на сайте. Поле Описание категории содержит описание конкретной категории. Заголовок таблицы имеет следующий вид.
ID категории | Название категории | Описание категории |
Таблица «Статьи» содержит информацию о статьях на сайте, о том к какой категории принадлежит каждая статья, а также о ключевых словах для каждой статьи. В поле Дата указана дата создания статьи.
ID статьи | Название статьи | Ключевые слова | ID категории | Дата |
Таблица «Комментарии» содержит информацию о комментариях для каждой статьи. Поле ID статьи показывает к какой статье был написан конкретный комментарий. Поле Дата показывает дату написания комментария. Заголовок таблицы имеет следующий вид.
ID комментария | Имя пользователя | Комментарий | ID статьи | Дата |
На рисунке приведена схема указанной базы данных.
Определите общее количество комментариев, которые написали в феврале 2021 года, для статей категории «Raspberry pi». В ответ запишите только целое число.
Открываем файл Excel.
При этом должна быть выделена не пустая ячейка.
Кнопка Фильтр может находится и на главной панеле.
После того, как мы оставим в фильтре только категорию Raspberry pi легко будет увидеть ID этой категории.
Перейдём на вкладку Статьи. Включим фильтр для этой вкладки. Через фильтр оставим только те статьи, которые имеют в ID категории число 10.
Теперь узнаем, а сколько комментариев оставили под этими статьями за февраль 2021 года. Переходим на вкладку Комментарии.
Включаем фильтр. В столбце ID статьи с помощью фильтра оставляем числа 5, 7, 13, 47.
Выделяем комментарии, которые написаны в феврале 2021 года. Их всего получается 5.
Количество выделенных ячеек можно посмотреть так же справа внизу.
Ответ: 5
Задача (База образовательного процесса)
В файле приведён фрагмент базы данных «образовательного процесса» некоторого населённого пункта о результатах школьников на экзаменах. База данных состоит из трёх таблиц.
Таблица «Результаты экзаменов» содержит записи о каждом ученике и его результатах на экзаменах по трём предметам. Поле ID школы показывает из какой школы каждый ученик. Заголовок таблицы имеет следующий вид.
ID ученика | Ученик | ID школы | Математика | Информатика | Физика |
Таблица «Школы» содержит информацию о школах в этом населённом пункте.
ID школы | Название школы | ID района |
Таблица «Районы» содержит информацию о районах населённого пункта.
ID района | Название района | Количество жителей |
На рисунке приведена схема указанной базы данных.
Определите в каком районе больше всего учеников, которые набрали 100 баллов хотя бы по одному предмету. В ответе напишите только название района с большой буквы, само слово «район» писать не нужно. Если количество таких учеников в районах окажется одинаковым, то приоритет имеет район, который первый стоит в алфавитном порядке.
Открываем файл Excel.
Найдём ID тех школ, которые находятся в первом Заречном районе. У Заречного района ID равен 1.
Переходим на вкладку Школы. Включаем фильтры. В столбце ID района выбираем 1.
Получается три школы с идентификаторами 3, 9, 11.
Перейдём на вкладку Результаты экзаменов. Найдём количество стобальников для выше указанных школ.
В столбце ID школы с помощью фильтра указываем числа 3, 9, 11.
В столбце Математика с помощью фильтра мы не можем указать число 100. Значит, по математике нет учеников, которые набрали 100 из Заречного района.
По Информатике тоже нет, но в столбце Физика с помощью фильтра можем выставить число 100.
После применения фильтра получаем в этой таблице одного человека. Значит, для Заречного района количество стобальников равно 1.
Аналогично действуем и для других районов. При анализе столбца предмета мы должны отключать действия тех предметов, которые уже проверили (чтобы не получался эффект логического И).
Для Октябрьского района получается 2 стобальника по математике.
Для Первомайского района получается 2 стобальника по информатике и 1 по физике.
Побеждает Первомайский район.
Задача (База антивирусной проверки)
Компания провела проверку своей компьютерной системы на наличие угроз антивирусными программами.
В файле приведён фрагмент базы данных этой проверки. База данных состоит из трёх таблиц.
Таблица «Проверенные файлы» содержит записи о проверенных антивирусами файлах. Поле ID каталога содержит информацию о том, в какой папке расположены файлы. Поле ID антивируса содержит информацию о том, каким антивирусом проверены файлы. Заголовок таблицы имеет следующий вид.
ID файла | Имя файла | Статус | ID каталога | Размер файла, КБ | Дата создания файла | ID антивируса |
Таблица «Каталоги» содержит информацию о папках в компьютерной системе. В поле Количество файлов указано количество файлов в этой папке (не обязательно проверенных). Заголовок таблицы имеет следующий вид.
ID каталога | Каталог | Количество файлов | Объём каталога, МБ |
Таблица «Антивирусы» содержит информацию об антивирусах, которые проверяли файлы. В поле Дата обновления указано, когда антивирусные базы были обновлены.
ID антивируса | Название | Дата обновления |
На рисунке приведена схема указанной базы данных.
Файлы со статусом «сильная угроза» подлежат удалению. Файлы со статусом «средняя угроза» подлежат лечению. При лечении файл теряет от своего информационного объёма 25%.
Найдите информационный объём каталога C:\Boot после устранения угроз, если учесть работу только тех антивирусов, которые обновились в июне 2021. Ответ запишите в КБ и округлите по правилам математики до целого числа. Само слово «КБ» писать НЕ нужно.
Каталог C:\Boot имеет ID 9. Антивирусы, которые обновились в июне 2021, имеют ID 3 и 5.
Перейдём на вкладку Проверенные файлы и включим фильтр. Применим фильтр, учтя вышеизложенные данные.
В столбце Статус с помощью фильтра оставим только строчки с сильной угрозой. Получается 4 файла. Суммарный информационный объём этих файлов равен 55 Кб. Эти файлы подлежат удалению.
Теперь оставим в столбце Статус с помощью фильтра только строчки со средней угрозой. Получается так же 4 файла. Суммарный информационный объём этих файлов равен 73 Кб. Эти файлы подлежат лечению.
От 73 Кб 25% будет: 73 Кб *0,25=18,25 Кб.
Перейдём на вкладку Каталоги. У каталога C:\Boot информационный объём 883 Мб или 883*1024=904192 Кб.
Задача (База родственных связей)
В файле приведён фрагмент базы данных о жителях небольшого города. База данных состоит из трёх таблиц.
Каждая строка таблицы Родственные связи содержит информацию о ребёнке и об одном из его родителей. Информация представлена значением поля ID в соответствующей строке таблицы Жители. Поле ID_района в таблице Жители показывает, в каком районе живёт конкретный житель.
Заголовок таблицы Жители имеет следующий вид.
ID | Фамилия_Имя | Пол | Год_рождения | ID_района |
Заголовок таблицы Родственные связи имеет следующий вид.
ID_родителя | ID_ребёнка |
Заголовок таблицы Районы имеет следующий вид.
ID_района | Название | Количество жителей |
На рисунке приведена схема указанной базы данных.
Определить на основании имеющихся данных сколько всего внуков и внучек у Садыкова Руслана, которые живут в Октябрьском районе. В ответе запишите только целое число.
С помощью стандартного поиска Ctrl + F можно найти Садыкова Руслана в таблице Жители. У него ID 19.
Найдём сколько у него детей. Переходим в таблицу Родственные связи с помощью фильтра в столбце ID_родителя только число 19. Всего получается три ребёнка.
Теперь в столбце ID_родителя оставляем числа 20, 21, 24.
ID внуков получаются 18, 22, 25, 26.
Осталось узнать, какие внуки и внучки живут в Октябрьском районе.
Переходим на вкладку Жители, с помощью фильтра оставим в столбце ID только ID внуков.
Если посмотреть на вкладке Районы, у района Октябрьский ID_района равен 1.
Получается, что две внучки живут в районе Октябрьском.
Задача (База продуктового магазина)
В файле приведён фрагмент базы данных «Продукты» о поставках товаров в магазины районов города. База данных состоит из трёх таблиц.
Таблица «Движение товаров» содержит записи о поставках товаров в магазины в течение первой декады июня 2021 г., а также информацию о проданных товарах. Поле Тип операции содержит значение Поступление или Продажа, а в соответствующее поле Количество упаковок, шт. занесена информация о том, сколько упаковок товара поступило в магазин или было продано в течение дня. Заголовок таблицы имеет следующий вид.
ID операции | Дата | ID магазина | Артикул | Тип операции | Количество упаковок, шт. | Цена, руб./шт. |
Таблица «Товар» содержит информацию об основных характеристиках каждого товара. Заголовок таблицы имеет следующий вид.
Артикул | Отдел | Наименование | Ед. изм. | Количество в упаковке | Поставщик |
Таблица «Магазин» содержит информацию о местонахождении магазинов. Заголовок таблицы имеет следующий вид.
ID магазина | Район | Адрес |
На рисунке приведена схема указанной базы данных.
Используя информацию из приведённой базы данных, определите на сколько килограмм увеличилось лапши гречневой, имеющихся в наличии в магазинах Первомайского района, за период с 1 по 10 июня включительно.
В ответе запишите только число.
Задача похоже на задачу, которая была в демонстрационной версии ЕГЭ по информатике 2022. Решение демо версии можете посмотреть здесь.
Разница заключается в том, что в демоверсии нужно было найти количество упаковок, а здесь килограммы. Нужно учесть, что в упаковке 0,5 кг (Это можно посмотреть в таблице Товар).
Найдём с помощью фильтра, какие магазины принадлежат к Первомайскому району.
У лапши гречневой Артикул равен 31 (Таблица Товар).
Переходим во вкладку Движение товаров. Включаем фильтр. Фильтруем данные для нужных магазинов и для нужного товара.
В поле Тип операции оставим с помощью фильтра Поступление.
Найдём количество упаковок, которые поступили в магазины Первомайского района.
Сумму выделенных ячеек можно посмотреть справа внизу. Получилось 1240 упаковок.
Аналогично находим количество проданных упаковок из магазинов Первомайского района. Получается 64.
Узнаем на сколько увеличилось упаковок.
А теперь найдём сколько получилось в килограммах.
1176 уп. * 0,5 кг/уп. = 588 кг
Ответ: 588
Сегодняшний урок посвящён 15 заданию из ЕГЭ по информатике 2022.
Темой этого урока связана с преобразованием логических выражений.
Теорию для преобразования логических выражений Вы можете посмотреть в этой статье. Как можно работать с логическими выражениями на питоне, можно прочитать в этой статье.
Перейдём к практике решения задач 15 задания из ЕГЭ по информатике 2022.
Задача (Неравенство, одна переменная)
Какое количество натуральных чисел удовлетворяет логическому условию:
Первый способ (с помощью питона).
Здесь перебираем с помощью цикла for натуральные числа от 1 до 1000.
Если логическое выражение выдаёт истину, то мы подсчитываем такой вариант.
Программа напечатает число 5.
Второй способ (с помощью рассуждений).
Преобразуем первое выражение ¬(X 2 ≥ 9) = (X 2 Важно: Если было строгое неравенство, то оно станет нестрогим, и наоборот, если было неравенство нестрогим, то оно станет строгим.
Получается, что выражение (X 2 Формула де Моргана:
Преобразуем выражение по формуле де Моргана и внесём отрицание в скобки:
Получилось выражение (X ≥ 7) ∧ (X Задача (Неравенство, две переменные)
Для какого наибольшего целого неотрицательного числа A выражение
(x ≥ A) ∨ (y ≥ A) ∨ (x * y ≤ 205)
Первый способ (с помощью питона).
В первом цикле перебираем значения для A. Здесь мы пытаемся подобрать ответ в диапазоне от 0 до 300. Этот диапазон меньше, чем в прошлой задаче. Потому что здесь три вложенных цикла, и если перебирать числа от 0 до 1000, то программа может работать очень долго. При необходимости можно указать другой диапазон.
Для каждого A устанавливаем счётчик k в ноль.
Затем перебираем все числа в диапазоне от 1 до 300 (включительно) для переменных x и y, тем самым имитируем фразу «для любых x и y».
Если логическое выражение сработает при каждом значении x и y, то считается, что значение A нам подходит, и в счётчике по окончанию вложенных циклов будет значение 90000 (300 * 300 = 90000).
Наибольшее число, которое напечатает программа равно 15.
Второй способ (с помощью рассуждений).
Здесь есть три выражения в скобках, которые соединены логическим сложением. При логическом сложении достаточно хотя бы одного выражения, где будет истина, чтобы всё общее выражение было истинно.
Если мы сделаем A слишком большим, к примеру A = 250, то найдутся такие x = 16, y = 16, при которых все три условия в скобках не будут выполняться, и, значит, всё общее выражение будет ложным.
Следовательно, нам нужно выбрать таким A, чтобы не было возможности подобрать x, y, при которых все три выражения ложны.
До какого же максимального значения могут дойти x и y, чтобы перемножение этих двух чисел было меньше или равно 205 (x * y Задача (Функция ДЕЛ)
Обозначим через ДЕЛ(n, m) утверждение «натуральное число n делится без остатка на натуральное число m». Для какого наибольшего натурального числа А формула
тождественно истинна (то есть принимает значение 1 при любом натуральном значении переменной x)?
Первый способ (с помощью питона).
Здесь мы формируем функцию ДЕЛ (функцию D). Если n делится на m, то функция возвращает Истину, в противном случае функция возвращает Ложь.
Далее решаем примерно так же, как и в прошлых задачах: для каждого числа A перебираем все значения x. Следование расписываем по формуле A ⟶ B = ¬A ∨ B.
Наибольшее число здесь получается равно 18.
Второй способ (с помощью рассуждений).
Рассмотрим случай, когда в левой части логического выражения будет 1, а в правой 0. В остальных случаях беспокоится не за что, потому что вся формула будет выдавать истину.
Посмотрим, когда в правой части получается ноль. Функция ДЕЛ(x, 6) должна выдавать истину. Т.е. x должен делится на 6. А функция ¬ДЕЛ(x, 9) должна выдавать ноль. Т.е. без отрицания ДЕЛ(x, 9) должна выдавать истину. Значит, x так же делится на 9.
x делится на 6 => x = 2*3*n, n ∈ N
x делится на 9 => x = 3*3*n, n ∈ N
Чтобы выполнялся случай, когда в правой части получается ноль, икс должен быть равен x = 3*3*2*n (n ∈ N). Т.е. получается, что икс должен быть кратен 18.
Т.е. получается, что когда x делится на 18, в правой части логического выражения будет получатся ноль. Чтобы спасти ситуацию, мы должны в левой части логического выражения не получать 1. Следовательно, ¬ДЕЛ(x, А) должно выдавать ноль. Значит, ДЕЛ(x, А) должно выдавать 1. Таким образом, приходим к выводу, что A должно равняться 18.
Если получится опасная ситуация, когда x кратен 18, то она будет нейтрализована, ведь в левой части будет получатся ноль.
Ещё один важный тип задач 15 задания ЕГЭ по информатике 2022
Обозначим через m&n поразрядную конъюнкцию неотрицательных целых чисел m и n. Так, например, 14&5 = 11102 & 01012 = 4
Для какого наименьшего неотрицательного целого числа A формула
x&51 ≠ 0 → (x&A = 0 → x&25 ≠ 0)
тождественно истинна (то есть принимает значение 1 при любом неотрицательном целом значении переменной x)?
Первый способ (с помощью питона).
Здесь следование преобразовываем по формуле: A ⟶ B = ¬A ∨ B. Так же и A, и x неотрицательные числа. Поэтому мы перебираем их диапазон, начиная с нуля. Из-за этого в цикле, который перебирает переменную x, мы устанавливаем верхнюю границы равной 1000, а не 1001. Тогда тоже будет 1000 повторений в этом цикле.
Наименьшее число равно 34.
Второй способ (с помощью рассуждений).
Переведём числа 51 и 25 в двоичную систему.
Формула будет тождественно ложна, когда
Этого допустить нельзя!
Рассмотрим правое выражение формулы. Ноль получается в единственном случае:
Рассмотрим выражение x&25 ≠ 0. Чтобы в этом логическом выражении получился ноль, нужно x&25 = 0. Посмотрим на двоичное представление числа 25. В тех разрядах, где стоят единицы, у икс должны быть нули (для x&25 = 0).
Сформулируем окончательное условие для x, при котором возникает опасность превращение общей формулы в ложь.
Нам нужно «поломать эту песенку» с помощью x&A = 0. Т.е. нельзя допускать, чтобы это выражение было истинно.
Получается, что A = 1000102. Это наименьшее из возможных число, при котором мы точно себя обезопасим от того, что вся формула будет ложна.
A = 1000102 в десятичной системе будет 34.
Ещё один тип задач 15 задания ЕГЭ по информатике
На числовой прямой даны отрезки P=[5, 13] и Q=[8, 19]. Укажите наименьшую возможную длину такого отрезка A, что формула (¬(x ∈ P) → (x ∈ Q)) → (x ∈ A ) верна при любых значениях x.
Если будут такие варианты:
То нам беспокоится не о чём. Потому что формула всегда будет истинна! (см. таблицу истинности для следования →)
Нас же будет интересовать этот случай.
При таком раскладе вся формула будет ложна! Нам нужно этого не допустить при любом значении x!
Единица получается в первом подвыражении в трёх случаях:
1) Случай
Выражение (x ∈ Q) ложно, когда x ∉ [8, 19]
Для 1 случая A=[5, 8).
2) Случай
При каких x выражение ¬(x ∈ P) обращается в ноль, мы уже рассматривали: x ∈ [5, 13].
Второе выражение «выдаёт» 1 при x ∈ [8, 19].
Получается, что при при x ∈ [8; 13] первое выражение в скобках в главной формуле будет тождественно истинно!
С помощью отрезка A нужно это нейтрализовать путём превращения второго выражения в скобках в главной формуле в 1, пока x ∈ [8; 13]. Значит, для этого случая A = [8; 13]
3) Случай
В выражении ¬(x ∈ P) единица получается, когда в выражении (x ∈ P) получается ноль. Тогда x ∉ [5, 13]!
Чтобы во втором выражении (x ∈ Q) была единица, нужно, чтобы x ∈ [8, 19].
Получается, что 3 случай выполняется, если x ∈ (13, 19].
С помощью отрезка A нужно этому противодействовать! Нужно чтобы выражение (x ∈ A) было всегда 1 при x ∈ (13, 19]. Тогда A должно быть (13, 19].
Следовательно, для третьего случая A=(13, 19].
Нам нельзя допустить ни одного случая! Поэтому, объединив все случаи, получаем, что A=[5, 19].
Длина отрезка равна 14.
Ещё одна задача про числовую прямую из банка тренировочных заданий ЕГЭ по информатике 2021.
Задача (Числовая прямая, закрепление)
На числовой прямой даны отрезки P=[5, 13] и Q=[8, 19]. Укажите наименьшую возможную длину такого отрезка A, что формула ((x ∈ P) ∧ ¬(x ∈ A)) → ((x ∈ Q) ∧ ¬(x ∈ A)) верна при любых значениях x.
Формула может быть ложна, когда
Во всех остальных случаях, формула всегда верна.
Предположим, что отрезок A сделали ещё меньшим. Тогда при каком-то x (x ∈ [5, 13]) выражение ¬(x ∈ A) будет «выдавать» 1! Причём такое же выражение стоит и в правой части формулы! Там тоже будет 1 для выражения ¬(x ∈ A).
Нас же в этом случае должно выручить выражение (x ∈ Q). Если оно «выдаст» 1 в этот «сложный» момент, то мы спасены! Ведь тогда получается, что правая часть всей формулы будет «выдавать» не 0, а 1. Посмотрим при каких x из отрезка [5, 13] приходит это спасение.
Видим, что в интервале x ∈ [8, 13] нас спасает выражение (x ∈ Q).
Значит, отрезок A можно сократить до A=[5, 8).
Длина отрезка будет равна 3!
Задачи для закрепления
Задача (Неравенство, две переменные, закрепление)
Для какого наибольшего целого неотрицательного числа A выражение
Первый способ (с помощью питона).
Т.к. выражение должно быть ЛОЖНО, то обернём логическое выражение в функцию not(). Видим, что программа не сильно отличается от прошлой задачи. Данный шаблон подходит для большинства задач подобного типа.
Наибольшее число получается равно 25.
Второй способ (с помощью рассуждений).
В этой задаче нужно, чтобы общее выражение было ложно!
Если мы поставим отрицание над всем выражением, то можно искать такое максимальное A, при котором всё выражение тождественно истинно, а не ложно!
Здесь применили формулу де Моргана! Т.е. каждое подвыражение получило отрицание + соединительная логическая операция (логическое умножение) сменилась на противоположную операцию (логическое сложение).
Внесём отрицание в скобки. Получается:
(x ≥ A) ∨ (y ≥ A) ∨ (x * y ≤ 603)
Получили ситуацию, как в прошлой задаче! Напомню, что теперь нужно, чтобы общее выражение было истинно.
Найдём максимальное число, до которого могут «подняться» x и y, чтобы ещё работало третье выражение!
Поэтому вспоминаем таблицу квадратов.
25 * 25 = 625
24 * 24 = 576
Получается, что максимальное число до которого могут «дойти» x и y, чтобы «работало» третье выражение, равно 24.
Тогда, начиная с 25 для x и y, должны работать первое и второе выражение.
Получается, что максимальное число для A равно 25.
Ещё одна задачка подобного типа из тренировочных упражнений 15 задания ЕГЭ по информатике.
Задача (Неравенство, две переменные, закрепление)
Для какого наименьшего целого числа A формула
Первый способ (с помощью питона).
Наименьшее число равно 61. Здесь не сказали, что A принимает неотрицательные значения, поэтому мы включили в диапазон для A числа, которые меньше нуля. Из-за этого увеличилось время выполнения программы, но ответ получим за приемлемое время.
Второй способ (с помощью рассуждений).
Чтобы вся формула была тождественно истинна, нужно, чтобы хотя бы одно выражение «выдавало» истину, т.к. выражения в формуле соединяются с помощью логического сложения!
Взглянем на третье выражение. Пока x ≥ 16, всё идёт как надо. Третье выражение будет истинно, и, значит, вся формула будет истинна.
Но если x ≤ 15, то нужно, чтобы нас «спасало» первое или второе выражение.
Рассмотрим второе выражение. Пока y > x (x ≤ 15) => y > 15, у нас всё нормально, второе выражение будет истинно, и вся формула будет истинна.
Теперь обратим внимание на первое выражение. Оно должно нас «спасать», когда третье и второе выражение «не спасло»! Это возможно, если x ≤ 15 (иначе «спасло» бы третье выражение), а так же y ≤ 15 (иначе «спасало» бы второе выражение).
Но, чтобы первое выражение было всегда истинно при x ≤ 15 и y ≤ 15, мы должны подобрать число A при максимальных x и y (x=15, y=15)! Ведь для более маленьких значений выражение (3 * x + y 3 * 15 + 15
Нужно найти наименьшее число для A, при котором A > 60. Тогда там, где не «спасли» третье и второе выражение, точно «спасёт» первое выражение. Получается A = 61.
Задача (ЕГЭ по информатике, Москва, 2020)
Для какого наибольшего целого неотрицательного числа A выражение
(x > A) ∨ (y > x) ∨ (2 * y + x
Первый способ (с помощью питона).
Максимальное число получается равно 36.
Второй способ (с помощью рассуждений).
Пока y > x, второе подвыражение всегда истинно, значит, и всё выражение истинно.
Теперь будем рассматривать случай y ≤ x.
Рассмотрим третье подвыражение. Найдём максимальные значения для x и для y, которые они одновременно могут принимать, и при которых ещё выполняется третье условие.
Т.к. мы рассматриваем случай y ≤ x, то максимальное число для y будет xmax т.е. ymax = xmax.
Если x «перевалит» за 36, и при этом y ≤ x (иначе «спасает» второе подвыражение), то должно «спасать» первое выражение.
Получается, что наибольшее значение A будет равно 36.
Следующий тип задач часто можно встретить в тренировочных вариантах ЕГЭ по информатике 2022.
Задача (С функцией ДЕЛ, закрепление)
Обозначим через ДЕЛ(n, m) утверждение «натуральное число n делится без остатка на натуральное число m». Для какого наибольшего натурального числа A формула
ДЕЛ(120, A) ∧ ((ДЕЛ(x, 70) ∧ ДЕЛ(x, 30)) → ДЕЛ(x, A))
тождественно истинна (то есть принимает значение 1 при любом натуральном значении переменной х)?
Первый способ (с помощью питона).
Наибольшее число получается равно 30.
Второй способ (с помощью рассуждений).
Рассмотрим левую часть логического выражения. Мы видим, что число 120 должно делится на A. Значит, для A уже есть некоторое ограничение (A
Т.е. x должен делится на 70 и одновременно x должен делится на 30.
x = 70*n = 2*5*7*n (n ∈ N)
x = 30*n = 2*5*3*n (n ∈ N)
Чтобы одновременно выполнялись два условия, икс должен быть равен x = 2*5*7*3*n (n ∈ N).
Для того, чтобы правое выражение не превращалось в ноль, x как раз должен делится на число 2*5*7*3. Тогда будет 1->1. Т.е. число A должно равняться 2*5*7*3. Но мы сказали, что A 1. Но это значение не подходит для левой части, ведь тогда A не является делителем числа 120.
Приходится брать число 2*5*3 (без семёрки). Здесь ситуация аналогично предыдущему случаю, только теперь это число является делителем числа 120.
В ответе напишем 30.
Задача (Поразрядная конъюнкция, закрепление)
Введём выражение M & K, обозначающее поразрядную конъюнкцию M и K (логическое «И» между соответствующими битами двоичной записи). Определите наименьшее натуральное число A, такое что выражение
(X & 49 ≠ 0) → ((X & 33 = 0) → (X & A ≠ 0))
тождественно истинно (то есть принимает значение 1 при любом натуральном значении переменной X)?
Первый способ (с помощью питона).
Наименьшее число равно 16.
Второй способ (с помощью рассуждений).
Переведём числа 49 и 33 в двоичную систему.
Рассмотрим случай, когда функция стремится превратится в ноль.
Чтобы левое выражение выдавало истину, икс должен иметь 1 (единицу) в первом разряде или во второй разряде, или в последнем разряде (в 6-ти битном числе).
Рассмотрим правое выражение. Посмотрим, когда выражение (X & 33 = 0) выдаёт истину. Первый бит и последний бит должен быть равен нулю. Т.е получается, что в 6-ти битном числе нас интересует второй бит. Если он будет равен 1 и при этом первый бит и последний будут равны 0, то возникает опасная ситуация, которую нужно спасть.
При выше описанных условиях выражение (X & A ≠ 0) должно выдавать истину. Тогда наименьшее A равно 100002 = 162.
Задача (числовая прямая, закрепление 2)
На числовой прямой даны два отрезка: P = [20, 30] и Q = [35, 60]. Найдите наименьшую возможную длину отрезка A, при котором формула
тождественно ложна, то есть принимает значение 0 при любых x.
Рассмотрим наоборот, когда логическое выражение выдаёт истину.
В правой части получается 1, когда x ∈ P или x ∈ Q. Именно в эти моменты выражение ¬(x ∈ A) должно спасать ситуацию и выдавать 0. Тогда без отрицания (x ∈ A) должно выдавать 1. Чтобы покрыть два отрезка, берём A=[20; 60].
Минимальная длина получается 60-20=40.
На этом всё! Увидимся в новых уроках по подготовке к ЕГЭ по информатике!
Разбор демоверсии ЕГЭ по информатике 2022 (16-21 Задание)
Продолжаем изучение демонстрационного варианта ЕГЭ по информатике 2022.
В этой статье разберём с 16-ого по 21 задание.
Желаю победы на ЕГЭ по информатике 2022!
Алгоритм вычисления значения функции F(n), где n – натуральное число, задан следующими соотношениями:
F(n) = 1 при n = 1;
F(n) = n + F(n − 1), если n чётно,
F(n) = 2 × F(n − 2), если n > 1 и при этом n нечётно.
Чему равно значение функции F(26)?
Запрограммируем эту задачу на Python‘е.
Формируем функцию F, в точности, как нам предоставили описание. И запускаем функцию с указанным параметром 26.
Проверить чётное ли число n или нет, можно, посмотрев остаток от деления n на 2.
В файле содержится последовательность целых чисел. Элементы последовательности могут принимать целые значения от –10 000 до 10 000 включительно. Определите и запишите в ответе сначала количество пар элементов последовательности, в которых хотя бы одно число делится на 3, затем максимальную из сумм элементов таких пар. В данной задаче под парой подразумевается два идущих подряд элемента последовательности. Например, для последовательности из пяти элементов: 6; 2; 9; –3; 6 – ответ: 4 11
Решим задачу на языке Python. Файл должен быть в той же папке, в которой сохранили программу (или нужно прописать полный путь до файла).
В начале подключаем файл. Заводим переменные count, sm, где будут храниться количество пар и наибольшая сумма.
Проверяем с помощью условия, делится ли хотя бы одно число из пары на 3. Если да, то прибавляем единицу к счётчику count. Так же, если выполняется условие, в переменную sm записывается максимальное значение между старым значением переменной sm и суммой очередной пары. Т.е. в переменной sm будет записана максимальная сумма элементов всех пар, которые удовлетворяют условию задачи.
В конце цикла кладём значение n2 в переменную n1, и всё повторяется.
Ответ:
2802 | 1990 |
Квадрат разлинован на N × N клеток (1 Решение:
Открываем файл в программе Excel.
Выделим все ячейки с числами, нажмём «вырезать», используя контекстное меню. Вставим данные на 1 столбец вправо. Это делаем потому, что будем использовать для решения формулу, которая будет обращаться к ячейке слева.
Мысленно представим пространство на 1 строчку ниже, чем область, где находятся числа. Это пространство будет таким же по размерам, как и область с числами. В этом пространстве и будет наше решение.
Отметим особым цветом те ячейки, которые «спрятаны» от движения Робота стенками.
Для этих ячеек будем составлять другие формулы, в отличии от обычных ячеек.
Цвет ячейки можно поменять, нажав на кнопку «Цвет заливки» на главной вкладке программы.
Т.к. Робот направляется из левой верхней ячейки, то мы сначала и напишем формулу для этой ячейки. Пишем для ячейки B22:
=МАКС( B21 ; A22 )+ B1
Робот в любую ячейку может прийти либо сверху, либо слева. Для подсчёта максимального количества монет, мы должны выбрать максимальное предыдущее значение. Это и делаем формула. Плюс Робот должен взять монеты с текущей клетки.
Распространим формулу на всё пространство, не трогая закрашенные клетки.
Получается такая картина:
В ячейки для первой закрашенной области, Робот может попасть только сверху! Поэтому пишем формулу для ячейки H25:
Распространяем формулу по всему закрашенному столбцу.
В ячейки для второй закрашенной области, Робот может попасть только слева! Поэтому пишем формулу для ячейки М39:
Распространяем формулу по всей закрашенной строчке.
В правом нижнем углу нашего рабочего пространства получается максимальное количество монет, которое может собрать Робот. В ячейке U41 получается число 721.
Чтобы получить минимальную возможную сумму, в главной формуле функцию МАКС нужно заменить на МИН!
Удобно воспользоваться автоматической заменой через Ctrl+F.
Минимальная сумма равна 640.
Ответ:
721 | 640 |
Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежит куча камней. Игроки ходят по очереди, первый ход делает Петя. За один ход игрок может добавить в кучу один камень или увеличить количество камней в куче в два раза. Для того чтобы делать ходы, у каждого игрока есть неограниченное количество камней.
Игра завершается в тот момент, когда количество камней в куче становится не менее 29. Победителем считается игрок, сделавший последний ход, т.е. первым получивший кучу, в которой будет 29 или больше камней.
В начальный момент в куче было S камней, 1 ≤ S ≤ 28.
Будем говорить, что игрок имеет выигрышную стратегию, если он может выиграть при любых ходах противника. Описать стратегию игрока – значит описать, какой ход он должен сделать в любой ситуации, которая ему может встретиться при различной игре противника. В описание выигрышной стратегии не следует включать ходы играющего по этой стратегии игрока, не являющиеся для него безусловно выигрышными, т.е. не являющиеся выигрышными независимо от игры противника.
Укажите такое значение S, при котором Петя не может выиграть за один ход, но при любом ходе Пети Ваня может выиграть своим первым ходом.
Решим задачу с помощью шаблона на языке программирования Python. Если хотите ознакомится с аналитическим решением задач на теорию игр, можете посмотреть мои статьи по 19 Заданию, 20 Заданию, 21 Заданию. Но с помощью шаблонов на экзамене решать быстрее и легче.
Введём параметр p, который будет олицетворять позицию игры (ход).
Начальная позиция | Ход Пети | Ход Вани | Ход Пети | Ход Вани | Ход Пети | |
p | 1 | 2 | 3 | 4 | 5 | 6 |
Дальше описываем победу. Если x>=29 и позиция равна 3 (1 Ход Вани), то возвращаем True, что означает победу.
Если, позиция уже равна 3, но камней меньше, чем должно быть для победы, то возвращаем False (проигрыш).
Третье условие. Если кто-то выиграл, но на первых двух условиях мы не вышли из функции, то, значит, выиграл не тот, кто нам нужен, следовательно, возвращаем Fasle.
Если мы не вышли на первых трёх условиях, то, значит, продолжаем прокручивать ходы, рекурсивно запускаем функцию F.
Для нечётных p (это ходы Вани), возвращаем разные ходы через and, т.к. он должен побеждать в любом случае. При этом увеличиваем на 1 значение p.
Для чётных p (это ходы Пети), возвращаем ходы через or.
В конце перебираем все возможные значения для s через цикл for, ищём те значения, которые подходят по условию задачи.
Для игры, описанной в задании 19, найдите два таких значения S, при которых у Пети есть выигрышная стратегия, причём одновременно выполняются два условия:
− Петя не может выиграть за один ход;
− Петя может выиграть своим вторым ходом независимо от того, как будет ходить Ваня.
Найденные значения запишите в ответе в порядке возрастания.
Задача точно такая же, как и в 19 задании, только теперь обязательно должен побежать Петя на своём втором ходу (p=4), при любой игре Вани.
Пишем тот же шаблон, немного отредактировав его.
Получается 7 и 13.
Ответ:
7 | 13 |
Для игры, описанной в задании 19, найдите значение S, при котором одновременно выполняются два условия:
− у Вани есть выигрышная стратегия, позволяющая ему выиграть первым или вторым ходом при любой игре Пети;
− у Вани нет стратегии, которая позволит ему гарантированно выиграть первым ходом.
Если найдено несколько значений S, в ответе запишите минимальное из них.
Опять используем прошлый шаблон, но немного модернизируем.
Здесь Ваня должен выигрывать либо на первом своём ходе (p=3), либо на втором своём ходе (p=5).
Т.к. Ваня не должен гарантированно выиграть своим первым ходом, то мы создаём ещё одну функцию F1, похожую на основную функцию F, которая вычисляет, когда Ваня именно гарантированно выигрывает на своём первом ходе (p=3). И, затем, мы из тех чисел, которые получились в первой функции F, исключаем числа, которые получились во второй функции F1.
В первой функции получилось 12,14, а во второй 14. Получается ответ 12.
Привет! В этой статье будут различные примеры решения задач из 5-ого задания ЕГЭ по информатике 2022.
Задание 5 решается не сложно, но, как всегда, нужно потренироваться решать подобные задачи, чтобы уверенно себя чувствовать на ЕГЭ по информатике 2022.
Рассмотрим классический пример.
На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R по следующему принципу.
Полученная таким образом запись (в ней на два разряда больше, чем в записи исходного числа N) является двоичной записью искомого числа R.
Укажите минимальное число R, которое превышает 42 и может являться результатом работы алгоритма. В ответе это число запишите в десятичной системе.
Алгоритму на вход приходит обычное натуральное число N.
Это число преобразуется в двоичную запись (пункт 1).
Во втором пункте правил формирования нового числа сказано, что к числу, полученному в первом пункте, дописываются справа ещё два дополнительных разряда.
Про 1 дополнительный разряд указано в подпункте а): «Складываются все цифры двоичной записи, и остаток от деления суммы на 2 дописываются в конец числа (справа). Например, запись 11100 преобразуется в запись 111001.»
Если по простому сказать, то мы подсчитываем количество единиц в двоичном представлении числа N. Если количество единиц чётное, то пишем в 1 дополнительный разряд ноль, если нечётное, то пишем в 1 дополнительный разряд единицу.
Со вторым дополнительным разрядом происходит всё тоже самое, что и с первым разрядом, только когда подсчитываем количество единиц, мы так же подсчитываем и в 1-ом дополнительном разряде.
В вопросе просят указать входящее наименьшее число N, чтобы автомат выдал число R больше 42.
Возьмём наименьшее число, которое больше 42 (т.е. 43) и переведём его в двоичную систему. Это можно сделать с помощью стандартного windows калькулятора.
Вызываем калькулятор, выбираем Вид->Программист. Кликаем на отметку Dec (это означает, что мы находимся в десятичной системе) и набираем число 43. Затем кликаем на отметку Bin
Проверим число 1010112. Может ли оно быть результатом работы нашего алгоритма?
Отделяем два дополнительных разряда справа. У нас, не считая двух дополнительных разрядов, количество единиц равно двум. Количество чётное, значит, в первом дополнительном разряде должен стоять 0. А у нас стоит 1.
Следовательно, число 1010112 не может являться результатом работы алгоритма. И это число не подходит.
Проверим последующие числа. На калькуляторе можно прибавлять по 1 и получать следующее число в двоичной системе. Мы проверяем последовательно числа, чтобы не пропустить самое маленькое число.
Подходит число 1011102. Количество единиц без двух дополнительных разрядов равно трём. Число нечётное. Значит, в первом дополнительном разряде должна стоять 1. В этом числе как раз стоит 1.
Количество единиц вместе с дополнительным разрядом равно 4. Число чётное, значит, во втором дополнительном разряде должен стоять 0. У нас и стоит во втором дополнительном разряде 0. Следовательно, число 1011102 подходит по всем правилам и является наименьшим.
В десятичной системе это число 46.
Рассмотрим ещё одну интересную задачу для подготовки к ЕГЭ по информатике 2022.
На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом.
1) Строится двоичная запись числа N.
2) Каждый разряд этой записи заменяется двумя разрядами по следующему правилу: если в разряде стоит 0, то вместо него пишется 01; если в разряде стоит 1, то 1 заменяется на 10.
Например, двоичная запись 1010 числа 10 будет преобразована в 10011001.
Полученная таким образом запись (в ней в два раза больше разрядов, чем в записи исходного числа N) является двоичной записью искомого числа R.
Укажите максимальное нечётное число R, меньшее 256, которое может являться результатом работы данного алгоритма. В ответе это число запишите в десятичной системе.
В этой задаче в начале строится двоичная запись числа N.
Каждый разряд превращается в два разряда! Единица превращается в 10. Ноль превращается в 01. На рисунке показан пример, как будет преобразовано число 10 = 10102.
Оценим первое число, которое меньше, чем 256. Это число 255.
В старших двух разрядах должны быть цифры 10, т.к. исходное число N не может начинаться с нуля.
В остальных парах попробуем написать 10, чтобы число было как можно больше.
Получается, что число 101010102 удовлетворяет всем правилам алгоритма, является наибольшим, и оно меньше 256.
Но важный момент, нас просили в ответ записать нечётное число.
В двоичной системе число, которое оканчивается на ноль, является чётным.
В двоичной системе число, которое оканчивается на единицу, является нечётным.
Чтобы число было нечётным, изменим последние разряды на 01.
Набираем обороты в решении 5 задания из ЕГЭ по информатике 2022.
На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число следующим образом.
1) Строится двоичная запись числа N.
2) К этой записи дописываются справа ещё два разряда по следующему правилу: если N чётное, в конце числа справа дописываются два нуля, в противном случае справа дописываются две единицы. Например, двоичная запись 1101 будет преобразована в 110111.
Укажите минимальное число N, для которого результат работы алгоритма будет больше 130. В ответе это число запишите в десятичной системе счисления.
После перевода в двоичную систему исходного числа N, алгоритм строит новое число по следующему правилу:
Бордовым прямоугольником показаны дополнительные разряды.
Нужно найти минимальное число больше 130. Будем проверять последовательно числа, начиная с 131.
Подходит число 135. В ответе нужно указать число N. Отбросим от числа 100001112 дополнительные разряды и переведём в десятичную систему.
Похожие задачи встречались в сборнике С. С. Крылова для подготовке к ЕГЭ по информатике.
На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом.
1. Из числа N вычитается остаток от деления N на 4.
2. Строится двоичная запись полученного результата.
3. К это записи справа дописываются ещё два дополнительных разряда по следующему правилу:
а) Складываются все цифры двоичной записи, и остаток от деления суммы на 2 дописываются в конец числа (справа). Например, запись 11100 преобразуется в запись 111001.
Полученная таким образом запись является двоичной записью числа R.
Укажите наибольшее число N, для которого результат работы данного алгоритма меньше 47. В ответе число N укажите в десятичной системе.
Первый способ. Число R должно быть меньше 47. Переведём число 46 в двоичную систему.
Результат от второго пункта не должен превышать 10112. Если результат от второго пункта будет превышать это число, то после добавления дополнительных разрядов получится число R, которое не меньше 47.
Проверим число 10112 = 11. Видим, что это число не может являться результатом пункта 2.
Найдём, число, для которого будут совпадать эти числа, отмеченные зелёным и оранжевым цветом.
10 + 0 = 10 ( остаток при делении 10 на 4 равен 2 ) Не подходит
9 + 0 = 9 ( остаток при делении 9 на 4 равен 1 ) Не подходит
8 + 0 = 8 ( остаток при делении 8 на 4 равен 0 ) Подходит!
Ответ получается 11.
Второй способ. Решим задачу с помощью Python’а.
Перебираем числа от 100 до 1 с помощью цикла for. Третий параметр «-1» в цикле for говорит о том, что мы перебираем числа в обратном порядке.
В этой программе запрограммировали алгоритм, который указан в задаче. Если значение переменной r (результат работы алгоритма) меньше 47, то печатаем это значение на экран. Первое распечатанное число и есть ответ к задаче.
В переменную n по очереди подставляются числа из нашего диапазона (100-1). Команда % находит остаток от деления.
Функция count, в данном случае, подсчитывает количество единиц в строке, которая находится в переменной n.
Ответ: 11
Боковой вариант 5-ого задания из ЕГЭ по информатике.
Автомат получает на вход четырёхзначное число. По этому числу строится новое число по следующим правилам:
1. Перемножаются первая и вторая, а также третья и четвёртая цифры исходного числа.
2. Полученные два числа записываются друг за другом в порядке убывания (без разделителей).
Пример. Исходное число: 2465. Суммы: 2 * 4 = 8; 6 * 5 = 30. Результат: 308. Укажите наибольшее число, в результате обработки которого автомат выдаст число 124.
В подобных задачах из ЕГЭ по информатике нумерация происходит начиная со старшего разряда.
Первое правило можно представить следующим образом:
Второе правило заключается в том, что мы «соединяем» два числа, полученных в первом пункте, причём, сначала идёт большее число, а затем меньшее.
Проанализируем число 124.
Чтобы четырёхзначное число было наибольшим, выгодно, чтобы в старшем разряде стояла 9. Но, не у числа 12, не у числа 4, нет такого делителя. Какой наибольший делитель мы можем получить? Это число 6. Число 6 является делителем 12-ти. Значит, первая цифра будет 6, а вторая цифра будет 2 (6*2=12).
Рассмотрим второе число 4. Третий разряд тоже желательно сделать побольше. Значит, в четвёртый разряд поставим 4, а в младший разряд 1 (4*1=4).
Ответ получается 6241.
Счастливых экзаменов! Видеоролик можете посмотреть ниже!
code-enjoy.ru
Оптимизируйте сайт и получите больше трафика
Попробуйте полную версию Анализа сайта: найдите ошибки на главной и внутренних страницах и исправьте их с помощью советов сервиса. Ежедневный аудит и проверка позиций помогут оценить результаты.
Бесплатная версия:
Анализ только главной страницы
10 проверок в инструментах в день
Ограниченная частота проверки
Платная:
Анализ всех страниц сайта
Сравнение с конкурентами
Проверка позиций по запросам
Автоматический анализ сайта
Еженедельные отчёты на почту
Важные события
Чек-лист
Параметры домена
Описание
Индекс качества сайта — это показатель того, насколько полезен ваш сайт для пользователей с точки зрения Яндекса.
При расчете индекса качества учитываются размер аудитории сайта, поведенческие факторы и данные сервисов Яндекса. Значение индекса регулярно обновляется.
Если у сайта есть зеркало, то показатель неглавного зеркала сайта будет равен показателю главного.
Показатель ИКС поддомена сайта, как правило, равен показателю основного домена.
Дополнительная информация
Статьи по теме
Данные теста были получены 04.11.2021 19:44
Выбор пользователей 3 из 5
Популярный сайт 3 из 5
Описание
Рядом с адресом сайта в результатах поиска Яндекса могут появляться знаки, основанные на данных о поведении пользователей. Такие знаки могут свидетельствовать об удовлетворенности пользователей и их доверии к сайту.
Популярный сайт — сайт получает этот знак, если имеет высокую посещаемость и постоянную аудиторию.
Выбор пользователей — знак получают сайты с высокой степенью вовлеченности и лояльности пользователей по данным Яндекса.
Статьи по теме
Данные теста были получены 04.11.2021 19:44
Описание
Примерное количество проиндексированных страниц в выдаче Яндекса можно посмотреть через оператор site:, что мы и делаем. Он покажет результат поиска по URL сайта, но точную цифру страниц в индексе выдавать не обязан.
Точные данные Яндекс отображает в Яндекс.Вебмастере. График изменений количества находится в разделе «Индексирование сайта» — «Страницы в поиске».
Данные теста были получены 04.11.2021 19:44
Описание
Сколько страниц сайта Google точно проиндексировал, узнать невозможно. Поисковик не ведет базу данных по URL-адресам.
Примерное количество страниц в выдаче покажет оператор site:, на который мы ориентируемся. Число может быть искажено страницами, которые запрещены к индексу в robots.txt, но попали в выдачу из-за внешних ссылок на них.
Чуть более точное количество покажет раздел «Статус индексирования» в Google Search Console, но и эти данные могут быть искажены из-за применения фильтров.
Данные теста были получены 04.11.2021 19:44
Описание
Примерное количество проиндексированных страниц в выдаче Яндекса можно посмотреть через оператор site:, что мы и делаем. Он покажет результат поиска по URL сайта, но точную цифру страниц в индексе выдавать не обязан.
Точные данные Яндекс отображает в Яндекс.Вебмастере. График изменений количества находится в разделе «Индексирование сайта» — «Страницы в поиске».
Данные теста были получены 04.11.2021 19:44
Описание
Google сканирует сайты, чтобы находить зараженные ресурсы, фишинговые страницы и другие проблемы, которые ухудшают качество выдачи и пользовательский опыт. Благодаря этой информации поисковая система предупреждает пользователей о небезопасных сайтах. В случае, если сайт будет признан опасным, Google может понизить его в выдаче или удалить.
Дополнительная информация
Данные теста были получены 04.11.2021 19:44
Описание
Обычно заражение происходит из-за уязвимости, которая позволяет хакерам получить контроль над сайтом. Он может изменять содержание сайта или создавать новые страницы, обычно для фишинга. Хакеры могут внедрять вредоносный код, например скрипты или фреймы, которые извлекают содержимое с другого сайта для атаки компьютеров, на которых пользователи просматривают зараженный сайт.
Дополнительная информация
Данные теста были получены 04.11.2021 19:44
IP адрес содержится в реестре.
Домен не найден в реестре.
С 2009 года Роскомнадзор контролирует распространение информации в интернете. Для этого ведомство в 2012 году создало реестр запрещенных сайтов, который пополняется ежедневно. Первыми под блокировку попадают сайты с запрещенным контентом. Также Роскомнадзор может заблокировать сайт за ФЗ 152 «О персональных данных».
Чтобы снять блокировку, нужно убрать материалы на сайте, из-за которых вы получили блокировку. После этого написать письмо на адрес zapret-info@rsoc.ru.
Дополнительная информация
Статьи по теме
Данные теста были получены 04.11.2021 19:44
Рейтинг домена — 16 / 100
Разместите кнопку с PR-CY Rank на сайт. Кнопка показывает уровень доверия и качество площадки.
Описание
Данные теста были получены 04.11.2021 19:44
Разбор демоверсии ЕГЭ по информатике 2022 (11-15 Задание)
Продолжаем разбор демонстрационного варианта ЕГЭ по информатике 2022.
В этой статье разберём с 11-ого по 15 задание.
Успешной подготовки к ЕГЭ по информатике 2022!
При регистрации в компьютерной системе каждому объекту сопоставляется идентификатор, состоящий из 15 символов и содержащий только символы из 8-символьного набора: А, В, C, D, Е, F, G, H. В базе данных для хранения сведений о каждом объекте отведено одинаковое и минимально возможное целое число байт. При этом используют посимвольное кодирование идентификаторов, все символы кодируют одинаковым и минимально возможным количеством бит. Кроме собственно идентификатора, для каждого объекта в системе хранятся дополнительные сведения, для чего отведено 24 байта на один объект.
Определите объём памяти (в байтах), необходимый для хранения сведений о 20 объектах. В ответе запишите только целое число – количество байт.
Решение:
Теперь нужно определить: сколько бит занимает одна ячейка (1 символ идентификатора!).
Когда речь идёт о количестве бит, применяем формулу, которую мы использовали в 7 задании из ЕГЭ по информатике. Там мы кодировали цвета для одного пикселя, а здесь нужно закодировать 8 букв для одного поля идентификатора.
Следовательно, для кодирования одного поля идентификатора потребуется 3 бита.
Для всего идентификатора потребуется 3 * 15 = 45 бит. Т.к. используется целое число байт для хранения идентификатора, то в байтах идентификатор будет весить 6 байт (45/8 = 5,625).
Один объект будет весить 6 байт + 24 байта = 30 байт (Приплюсовали дополнительную информацию).
Для 20 объектов потребуется 20*30 байт = 600 байт.
Исполнитель Редактор получает на вход строку цифр и преобразовывает её. Редактор может выполнять две команды, в обеих командах v и w обозначают цепочки цифр.
Эта команда заменяет в строке первое слева вхождение цепочки v на цепочку w. Например, выполнение команды
преобразует строку 05111150 в строку 0527150.
Эта команда проверяет, встречается ли цепочка v в строке исполнителя Редактор. Если она встречается, то команда возвращает логическое значение «истина», в противном случае возвращает значение «ложь». Строка исполнителя при этом не изменяется.
выполняется, пока условие истинно.
выполняется команда1 (если условие истинно) или команда2 (если условие ложно).
Какая строка получится в результате применения приведённой ниже программы к строке, состоящей из 70 идущих подряд цифр 8? В ответе запишите полученную строку.
Нас интересует вопрос и программа, которые приведены в конце задачи. Описание команд, как правило, не меняется от задачи к задаче.
Переведём программу, написанную на русском языке, на язык программирования Python.
В функции replace() важно не забыть поставить третьим аргументом единицу. Это означает, что мы производим замену один раз, а не сразу во всей строке.
Программа распечатает ответ 22.
На рисунке представлена схема дорог, связывающих города А, Б, В, Г, Д, Е, Ж, З, И, К, Л, М. По каждой дороге можно двигаться только в одном направлении, указанном стрелкой.
Сколько существует различных путей из города А в город М, проходящих через город В?
В начале зачеркнём те стрелки, которые приводят к тому, что мы не пройдём через пункт B.
Представляем, что вообще не существует тех стрелок, которые мы зачеркнули.
Ставим 1 возле начального города А. Смотрим для каждого города, из каких пунктов входят стрелки в конкретный город. Суммируем те числа, которые стоят возле тех пунктов, из которых входят стрелки.
Сначала считаем числа для тех городов, для которых можем это сделать.
Число возле конечного города покажет ответ.
Значение арифметического выражения
3*4 38 + 2*4 23 + 4 20 + 3*4 5 + 2*4 4 + 1
записали в системе счисления с основанием 16. Сколько значащих нулей содержится в этой записи?
На слово «значащие» можно не обращать внимание, потому что речь идёт об обычных нулях, которые встречаются в числе.
Напишем программу на языке Python.
В первой строчке мы переписываем арифметическое выражение. Две звёздочки подряд обозначают возведение в степень!
Затем, заводим переменную count для подсчёта нулей в 16-ричном виде.
С помощью цикла while, как раз, и получаем все цифры числа f в 16-ричной системе.
Мы смотрим остаток от деления числа f на 16, это и есть очередная цифра в 16-ричной системе (имитируем деление уголком!). Если цифра равна нулю, то её подсчитываем с помощью счётчика count. Так же необходимо сделать целочисленное деление на 16 при каждой итерации.
В конце распечатываем переменную count.
Ответ получился 15.
На числовой прямой даны два отрезка: D = [17; 58] и C = [29; 80]. Укажите наименьшую возможную длину такого отрезка A, для которого логическое выражение.
истинно (т.е. принимает значение 1) при любом значении переменной х.
«Главной скрипкой» данного логического выражения является следование, потому что эта операция соединяет различных блоки логические блоки.
Нам нельзя допустить, чтобы первое выражение принимало 1, а второе 0, одновременно.
Рассмотрим при каких значениях x реализуется этот страшный вариант.
Опасные значения получаются [17; 29]. Чтобы опасный сценарий нейтрализовать, выражение ¬(x ∈ A) должно принимать значение 0. Тогда (x ∈ A) должно выдавать 1. Чтобы это происходило всегда при опасных значения, принимаем A=[17, 29]. Длина получается 12.
Шестнадцатое задание из ЕГЭ по информатике 2022 даётся на рекурсию.
Это задание нужно делать с помощью компьютера.
В программировании рекурсией называется процесс, когда функция вызывает сама себя или, когда две функции попарно вызывают друг друга.
Мы будем писать все программы на языке программирования Python.
Рассмотрим пример функции, которая суммирует два числа!
Здесь функция F, которая суммирует два числа.
В главной части программы запрашиваются два числа с клавиатуры: a и b! Эти два числа передаются в функцию F. В функции эти числа кладутся в локальные переменные x и y. Сумма переменных x и y записывается в переменную s. Переменная s возвращается, как результат работы функции F.
Результат работы функции будет помещён в переменную r (в строке r = F(a, b)) в основной части программы.
Таким образом, в переменной r будет сумма двух переменных a и b.
Функции позволяют сократить программный код для однотипных расчётов.
Тренировочные задачи 16 задания из ЕГЭ по информатике 2022
Алгоритм вычисления значения функции F(n), где n – натуральное число, задан следующими соотношениями:
F(n) = 1 при n = 1;
F(n) = n + F(n − 1), если n – чётно,
F(n) = 3 × F(n − 2), если n > 1 и при этом n – нечётно.
Чему равно значение функции F(25)?
Напишем программу для решения данной задачи. В начале опишем все правила, которые даны в условии задачи для функции. В основной части программы запустим эту функцию.
После запуска рекурсивной функции программа выведет ответ 531441.
Продолжаем тренировку по подготовке к 16 заданию ЕГЭ по информатике 2022.
Алгоритм вычисления значения функции F(n), где n – натуральное число, задан следующими соотношениями:
Чему равно значение функции F(8)? В ответе запишите только натуральное число.
Ответ получается 148329.
Закрепляющий пример на рекурсию 16 задания из ЕГЭ по информатике 2022.
Алгоритм вычисления значения функций F(n) и G(n), где n — натуральное число, задан следующими соотношениями:
Чему равно значение функции F(8)? В ответе запишите только натуральное число.
Получается ответ 9.
Задача (Количество значений)
Алгоритм вычисления значения функции F(n), где n – натуральное число, задан следующими соотношениями:
F(n) = 2*n*n*n + 1, при n > 25
F(n) = F(n+2) + 2*F(n+3), при n ≤ 25
Определите количество натуральных значений n из отрезка [1; 1000], для которых значение F(n) кратно 11.
В начале формируем функцию F. Затем перебираем числа из диапазона от 1 до 1000. Каждое число подставляем в функцию F. Если значение функции F делится на 11, то мы зачитываем такое значение i.
В ответе получается 91.
Задача (Используем глобальную переменную)
Решение:
При решении этой задачи можно применить глобальную переменную.
Здесь внутри функции заводим глобальную переменную s, которая будет подсчитывать количество напечатанных звёздочек. Теперь эту переменную видно при любом вызове функции, и при каждом вызове функции она будет одна и та же переменная. Вместо печати звёздочек пишем конструкцию s=s+1.
В основной части программы перед первым запуском функции переменной s присваиваем 0.
Программа может немного медленно работать из-за большой глубины рекурсии, но через минуту выведет число 96631265.
Удачи при решении 16 задания из ЕГЭ по информатике 2022.
Мы подошли к 14 заданию из ЕГЭ по информатике 2022. Оно связано с различными системами счисления. Что такое различные системы счисления, мы рассматривали в этой статье. Так же будет полезно посмотреть эту статью.
Переходим к первому тренировочному 14-ому заданию из ЕГЭ по информатике. Раньше это задание было под номером 16.
Задача (ЕГЭ по информатике, 2019, Москва)
Первый способ. (С помощью Питона)
В переменную f записываем функцию. Две звёздочки подряд обозначают возведение в степень. Заводим строчку s, где и будет сформировано число в пятеричной системе.
Сам перевод числа f в пятеричную систему происходит в цикле WHILE.
Записываем остатки от деления на 5 в строку s. Делаем так же, как если бы переводили в ручную. И так же производим само целочисленное деление. Это мы тоже делаем, когда переводим на листке бумаги.
В строке s получается число в пятеричной системе, но в цифры в этой записи стоят в обратном порядке. Ведь, когда мы переводим в ручную, остатки должны записать задом наперёд.
Здесь и не важен порядок цифр, важно количество четвёрок!
С помощью функции count находим количество четвёрок в строке s.
В ответе напишем 4.
Второй способ. (Классический)
Сформулируем главное правило, на которое будем опираться при решении подобного типа задач.
Перепишем наше выражение, чтобы все числа были в виде степени представлены.
Посчитаем 5 36 + 5 24 в пятеричной системе столбиком, используя основное правило.
Здесь всё просто: ноль прибавить ноль, будет ноль. Единица плюс ноль, будет один.
Теперь от получившегося числа нужно отнять 5 2 (1005).
Первые два разряда посчитать легко. Ноль минус ноль, будет ноль.
Третий разряд: из нуля отнять единицу мы не можем, поэтому занимаем у более старших разрядов.
В более старших разрядах тоже нули, поэтому идём до единицы, у которой можно занять. Получается 22 четвёрки.
Вот как было бы, если бы считали в нашей родной десятичной системе счисления в аналогичной ситуации.
Здесь мы считаем в десятичной системе, поэтому получаются девятки. В нашей задаче считали в пятеричной системе, поэтому получаются четвёрки.
В ответе напишем 22 четвёрки.
Задача (ЕГЭ по информатике, 2020, Москва)
Первый способ. (С помощью Питона)
Второй способ. (Классический)
Преобразуем наше выражение. Приведём всё к 4-ам.
Здесь не можем применить технику устного счёта, потому что стоят два минуса. Значит, будем решать с помощью столбиков.
Теперь от этого числа нужно отнять 4 3 (10004)
Получается 32 тройки.
В последнем вычислении нет ничего сложно. В десятичной системе вы бы легко вычислили в аналогичной ситуации.
Укажите через запятую в порядке возрастания все десятичные натуральные числа, не превосходящие 17, запись которых в троичной системе счисления оканчивается на две одинаковые цифры.
1) Переведём число 17 в троичную систему.
2) Теперь выпишем все числа, которые не превосходят 1223 (Т.е. 1223 тоже подходит!), запись которых в троичной системе счисления оканчивается на две одинаковые цифры. В троичной системе могут применяться цифры 0, 1, 2.
Теперь переведём эти числа в десятичную систему.
Ещё один интересный тип задания номер 14, который вполне может быть на реальном ЕГЭ по информатике 2022.
Чему равно наименьшее основание позиционной системы счисления x, при котором 225x = 405y? Ответ записать в виде целого числа.
Переведём каждое из чисел 225x и 405y в десятичную систему счисления и приравняем, т.к. эти числа равны.
5 × x 0 + 2 × x 1 + 2 × x 2 = 5 × y 0 + 0 × y 1 + 4 × y 2
2x + 2x 2 = 4y 2
x + x 2 = 2y 2
x(1 + x) = 2y 2
Получили уравнение в целых числах. Слева умножение двух последовательных чисел. Нужно начать подбирать целые числа.
x (1 + x) = 2 × 6 2 = 72 ; Произведение двух последовательных чисел 8 * 9 = 72. Значит, x = 8.
Мы начали проверку с числа 6, потому что у нас в уравнении присутствуют цифра 5. Значит, система счисления может быть минимум с основанием 6.
Получается, что наименьшее значение x равно 8.
В подобных задач нужно знать, что числа обязательно найдутся, нужно их просто хорошо поискать.
Для качественной проработки 14 задания из ЕГЭ по информатике 2022 разберём ещё некоторые задачи.
Запись числа 338 в системе счисления с основанием N содержит 3 цифры и оканчивается на 2. Чему равно максимально возможное основание системы счисления?
В этой задаче применим формулу:
338 число будет точно больше, чем двухзначное число с основанием N.
Сказано, что число в системе с основанием N оканчивается на 2. Поэтому первый остаток должен быть равен 2!
Будем идти вниз от числа 18 и проверять, на что делится 336.
Число 336 должно делится на N.
Подошло число 16 (16 * 21 = 336!)
Продолжаем подготовку к 14 заданию из ЕГЭ по информатике 2022
Запись числа в девятеричной системе счисления заканчивается цифрой 4. Какой будет последняя цифра в записи этого числа в троичной системе счисления?
Подберём такие числа в десятичной системе, которые в остатке при первом делении на 9 дадут 4!
Посмотрим, какой остаток будет при делении этого же числа на 3 при первом делении. Получается 1. Это и будет ответ.
Ответ: 1
Укажите через запятую в порядке возрастания все основания систем счисления, в которых запись числа 23 оканчивается на 2.
Нужно перебрать все числа от 3 до 23 и определить, какие из них при делении числа 23 дадут остаток 2.
Подходят числа 3, 7, 21.
Здесь можно и написать программу:
Задача (Добьём 14 задание из ЕГЭ по информатике 2022)
В некоторой системе счисления записи десятичных чисел 66 и 40 заканчиваются на 1. Определите основание системы счисления.
Нужно найти такое число, чтобы числа 66 и 40 при делении на это число давали остаток 1.
Т.е. искомое число должно быть делителем чисел 65 (66-1) и 39 (40-1). У числа 39 не так много делителей: 1, 3, 13, 39
Видим, что число 65 делится на 13 (65 : 13 = 5). Поэтому искомое число равно 13.
В какой системе счисления выполняется равенство 12 · 13 = 222?
В ответе укажите число – основание системы счисления.
Если бы мы находились в десятичной системе, то последней цифрой была бы 6 (2 * 3). Но у нас 2! Т.е. Система счисления меньше или равна 6, т.к. если бы система счисления была больше 6, то у нас была бы 6 последняя цифра.
Шестёрка не «поместилась» в младший разряд, от неё осталось только 2. Остальные 4 единицы ушли в более старший разряд. Если 4 единицы составляют единицу более старшего разряда, то значит, мы находимся в четверичной системе.
На этом всё! Вы прошли чемпионскую тренировку по подготовке 14 задания из ЕГЭ по информатике 2022. Успехов на экзамене!
Привет! Сегодня поговорим о 17 задании ЕГЭ по информатике 2022.
В 17 задании нужно считать числа из файла, проанализировать их и ответить на вопрос задачи.
Будем решать задание на языке Python.
Напишем программу на языке Python.
В начале подвязываемся к файлу с помощью команды open().
В начале в переменную sm кладём максимальное число, которое теоретически может получится (10000 + 10000). Это делается для того, чтобы это значение можно было легко «победить» при поиске минимального значения.
Затем считываем в переменную n1 первое число. C помощью конструкции » for s in f.readlines():» можно перебрать остальные числа из файла. В цикле считываем второе число для пары в переменную n2.
После того, как два числа у нас есть, мы анализируем эти элементы на условие задачи. Если одновременно два числа из пары делятся на 7, то мы подсчитываем такую пару.
Если пара подходит, то проверяем сумму элементов этой пары на минимальность. В переменную sm заносится минимальное значение из прежнего значения sm и претендующего нового значения n1+n2.
В конце цикла нужно переложить второе число в переменную n1, чтобы очередное число из файла считалось в переменную n2. Тем самым мы получим новую пару чисел.
Ответ:
97 | -15820 |
Задача (Проверяем на что оканчивается число)
Т.к. мы ищем максимальную сумму, то в начале в переменную sm кладём наоборот минимальное значение (-10000-10000=-20000).
Здесь мы должны логические выражения для первого и второго числа взять в скобки, потому что логическая операция И имеет приоритет перед ИЛИ.
Ответ:
201 | 17366 |
Здесь мы извлекаем корень из числа с помощью возведения в степень 0.5. Округляем результат в меньшую сторону с помощью функции int(). А затем снова возводим в квадрат. Если мы получили изначальное число, значит, это число и есть полный квадрат некоторого натурального числа.
Возведение в степень в 0.5 работает и для отрицательных чисел. Т.к. в задаче имеют ввиду квадраты натуральных чисел, то мы работаем только с числами, которые больше нуля.
Ответ:
60 | 18555 |
С тройками решаем аналогично. До цикла считываем два числа. Внутри цикла считываем третье число.
В конце цикла перекладываем числа: второе число в n1, третье число в n2.
Ответ:
832 | 460 |
Задача (Любой порядок элементов)
В файле содержится последовательность из 10 000 целых положительных чисел. Каждое число не превышает 10 000. Определите и запишите в ответе сначала количество пар элементов последовательности, у которых сумма элементов кратна 9, затем максимальную из сумм элементов таких пар. В данной задаче под парой подразумевается два различных элемента последовательности. Порядок элементов в паре не важен.
Первый способ (Красивый).
После того, как результаты находятся в нужных переменных, можно вычислить ответ к задаче.
Если, к примеру, взять число для которого остаток равен 1 и число для которого остаток равен 8, то их сумма будет делится на 9. Найдём количество пар, если нам известно количество и тех, и тех чисел.
Значит, просто нужно перемножить два числа, к примеру, count_1*count_8.
Для чисел, которые делятся на 9 (т.е. остаток равен нулю), количество пар считается немного по-другому. Такие числа можно суммировать между собой, всё равно сумма тоже будет делится на 9. Путь есть у нас количество чисел count_0, которые делятся на 9. Тогда найдём количество пар, которые можно составить из этих элементов.
Здесь вспомним метод умножения, о котором было написано в этой статье.
Найдём количество таких пар, если каждый элемент можно использовать 1 раз. Получается count_0*(count_0-1). Но т.к. в нашем случае пара, когда элементы находятся в одном порядке и в обратном, является одной и той же, то нужно это количество поделить на 2. Т.е количество пар будет (count_0*(count_0-1))/2.
Второй способ (Перебор).
В этом решении сначала считываем все числа в массив a.
Далее берём число и начинаем его комбинировать со всеми числами, которые стоят после этого числа. Таким образом, мы переберём все возможные комбинации, и у нас не будут пары повторяться.
Ответ:
5553635 | 19998 |
Разбор демоверсии ОГЭ по информатике 2023. Часть 1
Привет! Сегодня посмотрим демонстрационный вариант ОГЭ по информатике 2023.
Всех с наступающим учебным годом!
Ученик удалил из списка название одного животного, а также лишние запятую и пробел – два пробела не должны идти подряд. При этом размер нового предложения в данной кодировке оказался на 16 байт меньше, чем размер исходного предложения. Напишите в ответе удалённое название животного.
Т.к. после удаления слова, запятой и пробела оказалось в предложении на 16 байт меньше, то, значит, было удалено 8 символов.
16 байт / 2 байта (16 бит) = 8 символов
Ведь в одном символе 16 бит = 2 байта.
В эти 8 символов входит и запятая, и пробел. Следовательно, на название животного остаётся 6 символов. Шесть символов иммет только слово «тюлень».
Это и будет ответом.
От разведчика было получено следующее сообщение.
В этом сообщении зашифрован пароль – последовательность русских букв. В пароле использовались только буквы А, Б, К, Л, О, С; каждая буква кодировалась двоичным словом по следующей таблице.
А | Б | К | Л | О | С |
01 | 100 | 101 | 111 | 00 | 110 |
Расшифруйте сообщение. Запишите в ответе пароль.
Здесь просто нужно попробовать расшифровать сообщение. Важно знать, что сообщение обязательно расшифровывается, и оно расшифровывается единственным образом.
Здесь не сказано, что каждвую букву можно использовать 1 раз. Поэтому буква «О» используется два раза.
Напишите наименьшее число x, для которого истинно высказывание: (x > 16) И НЕ (x нечётное).
Нужно вспомнить таблицу истинности для союза «И».
0 | И | 0 | = | 0 |
1 | И | 0 | = | 0 |
0 | И | 1 | = | 0 |
1 | И | 1 | = | 1 |
Чтобы получилась во всём выражении истина, нужно, чтобы каждое выражение было истинным.
Между населёнными пунктами A, B, C, D, E построены дороги, протяжённость которых (в километрах) приведена в таблице.
Определите длину кратчайшего пути между пунктами A и Е, проходящего через пункт С. Передвигаться можно только по дорогам, протяжённость которых указана в таблице. Каждый пункт можно посетить только один раз.
Нарисуем схему городов, как указано в таблице.
Видим, что самый кратчайший путь проходящий через точку С будет равен 8.
У исполнителя Альфа две команды, которым присвоены номера:
1. прибавь 1
2. умножь на b
(b – неизвестное натуральное число; b ≥ 2).
Первая из них увеличивает число на экране на 1, вторая умножает его на b. Алгоритм для исполнителя Альфа – это последовательность номеров команд. Найдите значение числа b, при котором из числа 6 по алгоритму 11211 будет получено число 82.
Здесь просто нужно выполнить указанные команды, получив уравнение.
Ниже приведена программа, записанная на пяти языках программирования.
Бейсик | Паскаль |
---|---|
C++ | Алгоритмический язык |
Python |
Было проведено 9 запусков программы, при которых в качестве значений переменных вводились следующие пары чисел (s, t):
(1, 2); (11, 2); (1, 12); (11, 12); (–11, –12); (–11, 12); (–12, 11); (10, 10); (10, 5). Сколько было запусков, при которых программа напечатала «YES»?
Разберём программы на Питоне и на Паскале.
Чтобы программа напечатала «YES», нужно, чтобы в паре было хотя бы одно число, которое больше 10, т.к. в условии стоит союз ИЛИ (or).
Подходят пары: (11, 2); (1, 12); (11, 12); (–11, 12); (–12, 11). Всего получается 5 запусков.
Доступ к файлу rus.doc, находящемуся на сервере obr.org, осуществляется по протоколу https. Фрагменты адреса файла закодированы цифрами от 1 до 7. Запишите в ответе последовательность этих цифр, кодирующую адрес указанного файла в сети Интернет.
Решение:
Ответ: 7413265
В языке запросов поискового сервера для обозначения логической операции «ИЛИ» используется символ «|», а для обозначения логической операции «И» – символ «&».
В таблице приведены запросы и количество найденных по ним страниц некоторого сегмента сети Интернет.
Запрос | Найдено страниц (в тысячах) |
Рыбак | Рыбка | 780 |
Рыбак | 260 |
Рыбак & Рыбка | 50 |
Какое количество страниц (в тысячах) будет найдено по запросу Рыбка? Считается, что все запросы выполнялись практически одновременно, так что набор страниц, содержащих все искомые слова, не изменялся за время выполнения запросов.
Решим задачу с помощью кругов Эйлера.
Найдём заштрихованную часть.
Чтобы получить полный круг для Рыбки, нужно заштрихованную часть сложить с кусочком, который закрашен серо-золотым цветом.
На рисунке – схема дорог, связывающих города А, Б, В, Г, Д, Е, Ж и К. По каждой дороге можно двигаться только в одном направлении, указанном стрелкой. Сколько существует различных путей из города А в город К, проходящих через город В?
Зачеркнём те стрелки, которые приводят к тому, что путь не пройдёт через город В.
Поставим 1 возле начального пункта.
Смотрим, из каких точек входят стрелки в каждый город. Для каждого города суммируем числа, стоящие возле этих точек.
Возле конечной точки получаем ответ.
Ответ: 10
Среди приведённых ниже трёх чисел, записанных в различных системах счисления, найдите максимальное и запишите его в ответе в десятичной системе счисления. В ответе запишите только число, основание системы счисления указывать не нужно.
Переведём числа в нашу родную систему счисления.
2316 = 3*16 0 + 2*16 1 = 35 328 = 2*8 0 + 3*8 1 = 26 111102 = 0*2 0 + 1*2 1 + 1*2 2 + 1*2 3 + 1*2 4 = 30
Мы берём цифры, начиная с последней. Умножаем их на основание системы. В начале степень основания системы равна нулю. Затем, степень потихонечку возрастает на 1. Между выражениями ставим знак суммирования (плюс).
Максимальное число равно 35.
Разбор второй части демоверсии ОГЭ по информатике 2023
Всем привет! Добрались мы до 25 задания из ЕГЭ по информатике 2023.
Рассмотрим типовые задачи, а так же новые формулировки 25 задания из ЕГЭ по информатике 2023.
Приступаем к первой классической задаче.
Задача (ЕГЭ по информатике, Демо 2022)
Пусть M – сумма минимального и максимального натуральных делителей целого числа, не считая единицы и самого числа. Если таких делителей у числа нет, то значение M считается равным нулю.
Напишите программу, которая перебирает целые числа, бо́льшие 700 000, в порядке возрастания и ищет среди них такие, для которых значение M оканчивается на 8. Выведите первые пять найденных чисел и соответствующие им значения M.
Формат вывода: для каждого из пяти таких найденных чисел в отдельной строке сначала выводится само число, затем – значение М. Строки выводятся в порядке возрастания найденных чисел.
Количество строк в таблице для ответа избыточно.
На ЕГЭ по информатике 2023 удобно писать программы на языке Python.
В данной программе перебираются числа в цикле for, начиная с 700001.
Переменная b — считается наибольшим делителем числа i. Затем, с помощью ещё одного цикла for перебираются числа с 2 до корня числа i (включительно). Ищем тем самым наименьший делитель.
Если до корня числа включительно не встретился ни один делитель, значит, у числа нет делителей, кроме 1 и самого числа.
Пусть у нас есть число A. Если у этого числа есть делитель d1, то он находится до корня этого числа. А вот то число (так же делитель d4), на которое умножается d1, чтобы получить A, будет находиться после корня A.
Таким образом, первый найденный делитель будет являться наименьшим делителем. А вот делительный, который находится в паре с наименьшим делителем, будет наибольшим.
После того, как мы нашли наименьший делитель (он будет сидеть в переменной j) и наибольший делитель b, выходим из второго цикла for.
Если переменная b осталась равна нулю, то, значит, у числа i нет указанных делителей, и переменная M должна равняться 0. Если b не равна нулю, то M=j+b.
Проверить, на что оканчивается число, можно узнав остаток от деления числа на 10.
Переменная count следит, чтобы было распечатано ровно 5 чисел, которые удовлетворяют условию задачи.
Ответ:
700005 | 233338 |
700007 | 100008 |
700012 | 350008 |
700015 | 140008 |
700031 | 24168 |
Напишите программу, которая перебирает целые числа, большие 550 000, в порядке возрастания и ищет среди них такие, для которых наибольший натуральный делитель, не равный самому числу, не является простым числом.
Программа должна найти и вывести первые 6 таких чисел и соответствующие им значения упомянутых делителей.
Формат вывода: для каждого из 6 таких найденных чисел в отдельной строке сначала выводится само число, затем упомянутый делитель. Строки выводятся в порядке возрастания найденных чисел.
Например, для числа 105 наибольший натуральный делитель 35 не является простым, для числа 15 наибольший натуральный делитель 5 — простое число, а для числа 13 такого делителя не существует.
Здесь мы ищем наибольший делитель числа, как и в прошлом решении.
Чтобы проверить число, является ли оно простым, напишем функцию Pr(). Там мы проходим до корня числа. Если не встретился не один делитель, значит, число простое — возвращаем True. Если до корня хотя бы один делитель встретили — возвращаем False.
Ответ:
550002 | 275001 |
550004 | 275002 |
550005 | 183335 |
550008 | 275004 |
550010 | 275005 |
550011 | 183337 |
Задача (Ровно 4 различных делителя)
Напишите программу, которая ищет среди целых чисел, принадлежащих числовому отрезку [258274; 258297], числа, имеющие ровно 4 различных делителя. Выведите для каждого найденного числа два наибольших делителя в порядке возрастания.
Здесь для каждого числа i заводим массив a, где будем сохранять все его делители. Идём как всегда до корня. Если мы нашли делитель, мы добавляем его в массив a c помощью команды append и ищем его «брата». Второй делитель («брат») не должен равняться самому делителю j, т.к. нам сказали, что все делители должны быть различны. Одинаковые делители j и b могут получится, если из нашего числа i извлекается целый корень. Ведь для делителя √i является парой этот же делитель ( √i* √i=i).
После прохождения внутреннего цикла (с переменной j) в массиве a будут сидеть все делители числа i. Если их ровно 4, то сортируем массив a и выводим на экран два наибольших.
Ответ:
15193 | 258281 |
1427 | 258287 |
1493 | 258289 |
36899 | 258293 |
51659 | 258295 |
Назовём нетривиальным делителем натурального числа его делитель, не равный единице и самому числу. Найдите все натуральные числа, принадлежащие отрезку [4234679; 10157812] и имеющие ровно три нетривиальных делителя. Для каждого найденного числа запишите в ответе само число и его наибольший нетривиальный делитель. Найденные числа расположите в порядке возрастания.
Как у нас могут быть три различных нетривиальных делителя, когда делители идут, как мы выяснили, парами. Это может быть, когда существует целый корень из этого числа. Тогда в паре два числа будут одинаковыми (√i* √i = i). Поэтому в этой задаче нас интересуют числа из которых извлекается елый корень.
Если этим рассуждением не воспользуемся, то программа будет считать очень долго, потому что здесь диапазон и сами числа очень большие.
Далее, решаем, как и в прошлый раз.
Ответ:
4879681 | 103823 |
7890481 | 148877 |
Задача (ЕГЭ по информатике, 20.06.22)
Назовём маской числа последовательность цифр, в которой также могут встречаться следующие символы:
— символ «?» означает ровно одну произвольную цифру;
— символ «*» означает любую последовательность цифр произвольной длины; в том числе «*» может задавать и пустую последовательность.
Например, маске 123*4?5 соответсвуют числа 123405 и 12300405.
В ответе запишите в первом столбце таблицы все найденные числа в порядке возрастания, а во втором столбце — соответствующие им результаты деления этих чисел на 141.
Таким образом, нужно рассмотреть, когда вместо звёздочки ноль разрядов, один разряд, два разряда и три разряда.
Каждый разряд перебираем как цифры (символы). Формируем строку s, а затем её переводим в тип int.
Когда два разряда или три разряда нужно перебирать строку с помощью вложенных циклов.
Ответ:
1234737 | 8757 |
12341307 | 87527 |
12342717 | 87537 |
12344127 | 87547 |
12345537 | 87557 |
12346947 | 87567 |
12348357 | 87577 |
12349767 | 87587 |
Привет! Сегодня узнаем, как решать 4 задание из ЕГЭ по информатике нового формата 2021.
Четвёртое задание из ЕГЭ по информатике раскрывает тему кодирование информации. Одним из центральных приёмов при решении задач подобного типа является построение дерева Фано. Рассмотрим на примерах этот метод.
По каналу связи передаются сообщения, содержащие только шесть букв: А, B, C, D, E, F. Для передачи используется неравномерный двоичный код, удовлетворяющий условию Фано. Для букв A, B, C используются такие кодовые слова: А — 11, B — 101, C — 0. Укажите кодовое слово наименьшей возможной длины, которое можно использовать для буквы F. Если таких слов несколько, укажите то из них, которое соответствует наименьшему возможному двоичному числу.
Примечание. Условие Фано означает, что ни одно кодовое слово не является началом другого кодового слова. Коды, удовлетворяющие условию Фано, допускают однозначное декодирование
Т.к. код букв должен удовлетворять условию Фано (т.е. однозначно декодироваться), то расположим буквы, которые уже имеют код (A, B, C), на Дереве Фано.
Дерево Фано для двоичного кодирования начинается с двух направлений, которые означают 0(ноль) и 1(единицу) (цифры двоичного кодирования).
От каждого направления можно также рисовать только два направления: 0(ноль) и 1(единицу) и т.д. Для удобства будем рисовать 1(единицу) только вправо, а 0(ноль) только влево.
Получается структура похожая на дерево!
В конце каждой ветки можно располагать букву, которую мы хотим закодировать, но если мы расположили букву, от этой ветки больше нельзя делать новых ответвлений.
Такой подход позволяет однозначно декодировать сообщение, состоящее из этих букв.
Буква C заблокировала левую ветку, поэтому будем работать с правой частью нашего дерева.
Если мы расположим какую-нибудь букву на оставшуюся ветку (100), то эта ветка заблокируется, и нам некуда будет писать остальные 2 буквы. Поэтому продолжаем ветку (100) дальше.
Теперь свободно уже две ветки, а нам нужно закодировать ещё три буквы. Поэтому должны ещё раз продолжить дерево от какой-нибудь ветки.
Но уже видно, что букве F будет правильно присвоить код 1000, т.к. нам в условии сказано, что код буквы F должен соответствовать наименьшему возможному двоичному числу. Как расположить буквы D и E в данной задаче не принципиально.
Ещё один важный тип задания 4 из ЕГЭ по информатике нового формата 2021.
По каналу связи передаются сообщения, содержащие только семь букв: А, Б, И, К, Л, С, Ц. Для передачи используется двоичный код, удовлетворяющий условию Фано. Кодовые слова для некоторых букв известны: Б — 00, К — 010, Л — 111. Какое наименьшее количество двоичных знаков потребуется для кодирования слова АБСЦИССА?
Примечание. Условие Фано означает, что ни одно кодовое слово не является началом другого кодового слова.
Коды букв должны удовлетворять условию Фано. Некоторые буквы уже имеют заданные коды (Б, К, Л). Нам нужно, чтобы слово АБСЦИССА имело как можно меньше двоичных знаков. Заметим, что буква C встречается три раза, а буква A два раза, значит, этим буквам стараемся присвоить как можно меньшую длину!
Отметим на дереве Фано уже известные буквы (Б, К, Л).
Если продолжить линию 1-0, то получится такая картина :
Теперь получились 4(четыре) свободные ветки равной длины (3(трём) двоичным символам). Т.к. ветки равной длины, то не важно на какую ветку какую букву расположим.
Посчитаем общую длину слова АБСЦИССА.
3 + 2 + 3 + 3 + 3 + 3 + 3 + 3 = 23.
Продлим линию 1-1-0 (можно и 0-1-1, не принципиально, т.к. эти ветки имеют одинаковую длину.), то получится:
С мы присваиваем 1-0, т.к. это буква повторяется в сообщении самое большое количество раз, значит, ей присваиваем самый маленький код, чтобы всё сообщение имело наименьшую длину.
Из этих же соображений букве А присваиваем код из трёх двоичных символов 0-1-1.
Подсчитаем общее количество символов в сообщении.
3 + 2 + 2 + 4 + 4 + 2 + 2 + 3 = 22
Длина получилась меньше, чем в первом варианте. Других вариантов нет, поэтому ответ будет 22.
Для передачи по каналу связи сообщения, состоящего только из символов А, Б, В и Г, используется неравномерный (по длине) код: А-10, Б-11, В-110, Г-0. Через канал связи передаётся сообщение: ВАГБААГВ. Закодируйте сообщение данным кодом. Полученное двоичное число переведите в восьмеричный вид.
В этой задаче ничего не сказано про условие Фано. Здесь уже все буквы закодированы, осталось написать сам код.
Задача сводится к переводу из двоичной системы в восьмеричную систему. На эту тему был урок на моём сайте.
На этом всё! Увидимся на следующих занятиях по подготовке к ЕГЭ по информатике.
Теперь давайте посмотрим на задание номер 1 в ОГЭ по информатике 2020!
Задача:
В кодировке КОИ-8 каждый символ кодируется 8 битами. Вася написал текст (в нём нет лишних пробелов):
«Лена, Иртыш, Обь, Колыма, Днепр, Колыма – реки России.»
Ученик добавил в список название ещё одной реки – Волга. При этом он добавил в текст необходимую запятую и пробел. На сколько байт при этом увеличился размер нового предложения в данной кодировке? В ответе укажите только одно число – количество байт.
В первой задаче ОГЭ по информатике 2020 обычно есть текст в кавычках, который написан учеником. И в этом тексте идёт некоторое перечисление. И в это перечисление добавил ученик слово «Волга», плюс запятую и пробел. Итого ученик добавил 7 символов.
Каждый символ кодируется 8-ю битами (т.е. 1 байтом).
Итого 7 сим * 1 байт = 7 байт добавил ученик. Значит и предложение увеличилось на 7 байт.
Разберём ещё один пример из первого номера из ОГЭ по информатике 2020.
Задача:
В одной из кодировок Unicode каждый символ кодируется 16 битами. Серьгуша написал текст (в нём нет лишних пробелов):
«Меркурий, Венера, Земля, Марс, Юпитер, Сатурн— планеты солнечной системы».
Ученик вычеркнул из списка название одной планеты. Заодно он вычеркнул ставшие лишними запятые и пробелы — два пробела не должны идти подряд. При этом размер нового предложения в данной кодировке оказался на 12 байт меньше, чем размер исходного предложения. Напишите в ответе вычеркнутое название планеты.
Задача похоже на предыдущую, но теперь мы не добавляем слово в перечисление, а вычеркиваем. Заодно, как и в прошлый раз, нужно убрать лишнюю запятую и лишний пробел.
Задача:
В кодировке UTF-32 каждый символ кодируется 32 битами. Даша написала текст (в нём нет лишних пробелов):
«комары, мухи, бабочки— насекомые».
Ученица вычеркнула из списка одно название насекомых. Заодно она вычеркнула ставшие лишними запятые и пробелы — два пробела не должны идти подряд. При этом размер нового предложения в данной кодировке оказался на 32 байта меньше, чем размер исходного предложения. Напишите в ответе вычеркнутое название насекомых.
На этом всё! Разбомбим ОГЭ по информатике 2020!
Привет! Мы добрались до 18 задания из ЕГЭ по информатике 2021.
Это задание снова решается с помощью компьютера.
Восемнадцатое задание направлено на обработку вещественных чисел с помощью таблиц. Мы с вами будет использовать программу Excel от компании Microsoft.
Перейдём к к тренировке решения 18 задания из ЕГЭ по информатике 2021.
Квадрат разлинован на N×N клеток (1 Решение:
Открываем файл к данной задачке.
В начале найдём максимальную сумму.
Выделяем область всех ячеек, где написаны числа, вырезаем её и вставляем на столбец правее. Это нужно для того, чтобы при составлении формулы решения не было ошибок.
Обозначим мысленно ту область, где мы будем составлять наше решение, пропустив одну или две строчки снизу. По размеру область будет такая же.
В каждой ячейке этой области будет лежать максимальная cумма, которую может собрать Робот, дойдя до этой клетки. Т.к. Робот идёт в верхнюю правую клетку, то, соответственно, в ячейке K12 будет находится нужный нам ответ.
Наш Робот идёт из левой нижней клетки. Поэтому формулу, решающую эту задачу, составим сначала для ячейки B21.
Кликаем на ячейку B21 и пишем формулу:
=МАКС(A21;B22)+B10
Примечание: Чтобы в ячейке начать писать формулу, нужно поставить знак «=».
Эту роль исполняет функция МАКС(). Она помогает выбрать откуда нужно идти, чтобы сумма всегда была максимальна.
Плюс, мы должны добавить сумму для данной ячейки к максимальной сумме предыдущей клетки. Поэтому в формулу дописываем ячейку B10
После того, как составили формулу для одной ячейки B21, можно распространить формулу на всю область.
Подносим мышку к правому нижнему углу. Как только появился чёрный крестик, кликаем левую кнопку мыши, и тянем вверх на 10 строчек вверх.
После того, как столбец готов, выделяем этот столбец, и аналогично, распространяем его на всё пространство.
В итоге получается такая картина:
Видим, что в ячейке K12 значение 1298. Это значение нам и нужно.
Аналогичным образом ищется минимальное значение, только в формуле вместо функции МАКС будет использоваться функция МИН.
Минимальное значение получилось 589.
Посмотрим ещё одну интересную задачу из примерны задач ЕГЭ по информатике нового образца 2021.
Квадрат разлинован на N × N клеток (1 Решение:
Открываем файл в программе Excel.
Выделим все ячейки с числами, нажмём «вырезать», используя контекстное меню. Вставим данные на 1 столбец вправо. Это делаем потому, что будем использовать для решения формулу, которая будет обращаться к ячейке слева.
Мысленно представим пространство на 1 строчку ниже, чем область, где находятся числа. Это пространство будет таким же по размерам, как и область с числами. В этом пространстве и будет наше решение.
Отметим особым цветом те ячейки, которые «спрятаны» от движения Робота стенками.
Для этих ячеек будем составлять другие формулы, в отличии от обычных ячеек.
Цвет ячейки можно поменять, нажав на кнопку «Цвет заливки» на главной вкладке программы.
Т.к. Робот направляется из левой верхней ячейки, то мы сначала и напишем формулу для этой ячейки. Пишем для ячейки B22:
=МАКС( B21 ; A22 )+ B1
Робот в любую ячейку может прийти либо сверху, либо слева. Для подсчёта максимального количества монет, мы должны выбрать максимальное предыдущее значение. Это и делаем формула. Плюс Робот должен взять монеты с текущей клетки.
Распространим формулу на всё пространство, не трогая закрашенные клетки.
Получается такая картина:
В ячейки для первой закрашенной области, Робот может попасть только сверху! Поэтому пишем формулу для ячейки H25:
Распространяем формулу по всему закрашенному столбцу.
В ячейки для второй закрашенной области, Робот может попасть только слева! Поэтому пишем формулу для ячейки М39:
Распространяем формулу по всей закрашенной строчке.
В правом нижнем углу нашего рабочего пространства получается максимальное количество монет, которое может собрать Робот. В ячейке U41 получается число 721.
Чтобы получить минимальную возможную сумму, в главной формуле функцию МАКС нужно заменить на МИН!
Удобно воспользоваться автоматической заменой через Ctrl+F.
Минимальная сумма равна 640.
Ответ:
721 | 640 |
Квадрат разлинован на N×N клеток (2 Решение:
Перенесём таблицу чисел на один столбец вправо.
Найдём, сколько соберёт монет исполнитель ВЕРХ.
Исполнитель «ВЕРХ» начинает идти с левой нижней клетки. Поэтому первую формулу мы зададим для клетки B27. Эта ячейка является нижней левой клеткой для области, где мы будем составлять решение.
Напишем в ячейке B27:
=МАКС(A27;B28)+B13
Распространим формулу на всё пространство.
Когда исполнитель пройдёт всё поле, в ячейке N15 будет находится ответ. Максимальное количество монет, которое может собрать исполнитель ВЕРХ будет 1743.
Теперь найдём максимальное количество монет, которое может собрать исполнитель НИЗ.
Решать будем аналогичным образом, удалив все следы от предыдущего исполнителя.
Т.к. исполнитель НИЗ стартует с левой верхней клетки, то мы сначала составим формулу для ячейки B15. Эта клетка олицетворяет левую верхнюю ячейку для области, где будет происходить решение.
=МАКС(B14;A15)+B1
В любую ячейку мы можем попасть либо сверху, либо слева. Это не относится к боковым и угловым ячейкам, но формула будет работать и для них.
При составлении максимальной суммы для любой ячейки, мы выбираем максимальное значение суммы из двух предыдущих ячеек + добавляем значение для этой ячейки.
Распространим формулу на всё пространство.
В ячейке N27 будет максимальное значение для исполнителя НИЗ. Получилось 1686.
Видим, что у исполнителя ВЕРХ получилось собрать больше монет.
Девятое задание из ЕГЭ по информатике 2022 проверяет умение обрабатывать числовую информацию с помощью таблиц Excel.
При подготовке к 9 заданию из ЕГЭ по информатике может быть полезна и прошлогодняя статья.
В 2022 году пошла тенденция давать задачи, в которых применяются знания по математике и геометрии.
Задача (Равнобедренный треугольник)
(№ 4335) (А. Богданов) Откройте файл электронной таблицы 9-114.xls, содержащей в каждой строке три натуральных числа. Выясните, какое количество троек чисел могут являться сторонами равнобедренного треугольника. В ответе запишите только число.
Для каждой тройки проверим:
Чтобы проверить первое условие, нужно вспомнить неравенство треугольника: любая сторона треугольника должна быть меньше суммы двух других сторон.
Поставим «1» в столбце D напротив тех троек, которые подходят под первое условие.
Сначала напишем формулу для первой строчки в ячейке D1.
Кликаем в ячейку D1 и нажимаем кнопку Вставить функцию.
Выбираем функцию ЕСЛИ. Пишем логическое выражение:
Союз И говорит о том, что три условия должны сработать одновременно.
В Значение_если_истина ставим 1. В Значение_если_ложь ставим 0.
Если одновременно выполняются три условия, то в ячейку идёт 1, иначе 0.
Распространим формулу на весь столбец. Подведём курсор к правому нижнему углу. Как только загорелся чёрный крестик, кликаем два раза, и формула должна распространится на весь столбец.
Возле тех строчек, которые удовлетворяют условию, будут нули, возле тех, которые не удовлетворяют, будут единицы.
За второе условие будет отвечать столбец E. Напишем условие в ячейку E1.
Союз ИЛИ говорит о том, что если одно условие сработает, значит, выражение будет считаться истинным.
В Значение_если_истина ставим 1. В Значение_если_ложь ставим 0.
Распространяем всю формулу на весь столбец E. Напротив тех строчек, которые удовлетворяют второму условию, будут стоять «1», в противном случае «0».
В столбце F ставим «1» в тех строчках, где в столбцах D И E одновременно «1», используя функцию ЕСЛИ.
В Значение_если_истина ставим 1. В Значение_если_ложь ставим 0.
Выделив столбец F, в правом нижнем углу посмотрим сумму единиц в этом столбце.
Получается ответ 229.
Ещё одна тренировочная задача из ЕГЭ по информатике 2022.
(А. Богданов) Откройте файл электронной таблицы 9-114.xls, содержащей в каждой строке три натуральных числа. Выясните, какое количество троек чисел могут являться сторонами тупоугольного треугольника. В ответе запишите только число.
Во-первых проверим: удовлетворяют ли числа условию неравенства треугольника (аналогично прошлой задаче). За это будет отвечать столбец D.
В столбцах E, F, G мы будем вычислять косинусы трёх углов треугольника. Косинусы будем находить по теореме косинусов. Косинусы будем вычислять для всех троек, но учитывать только те, где выполняется неравенство треугольника.
В ячейке E1 напишем формулу:
В ячейке F1 напишем формулу:
В ячейке G1 напишем формулу:
Распространим вышеуказанные формулы на соответствующие столбцы.
Получается примерно такая картина:
Остался последний шаг: проверить, есть ли у какой-нибудь тройки, которая удовлетворяет неравенству треугольника, отрицательный косинус. Тупой угол имеет отрицательный косинус.
Кликаем в ячейку H1, нажимаем кнопку «Вставить функцию» и выбираем ЕСЛИ.
В поле Лог_выражение пишем:
В поле Значение_если_истина ставим «1», в поле Значение_если_ложь ставим «0». Распространяем формулу на весь столбец H, и посчитаем количество единиц в этом столбце.
Количество единиц равно 1720.
Снова нужно знать математические формулы в следующей задаче из примерных вариантов ЕГЭ по информатике 2022.
(А. Комков) Откройте файл электронной таблицы 9-103.xls, содержащей в каждой строке два целых числа – координаты точки на плоскости. Найдите наибольшее расстояние точки от начала координат. В ответе запишите целую часть найденного расстояния.
Посмотрим, как найти расстояние от точки с координатами (x1, y1) до точки с координатами (x2, y2).
s 2 = (x2-x1) 2 + (y2-y1) 2
В столбце С получим расстояние от конкретной точки до начала координат.
В ячейке C1 напишем формулу и распространим эту формулу на весь столбец.
Найдём максимальное значение в столбце С. Теперь кликнем в ячейку D1. Нажмём кнопку «Вставить функцию». Выберем функцию МАКС. Укажем мышкой столбец С. Нажмём «ОК».
Целая часть получившегося числа равна 425.
(Е. Джобс) Откройте файл электронной таблицы 9-j1.xls, содержащей показатели высот над уровнем моря географических точек. Найдите среднее значение всех отрицательных показателей и максимальное положительное значение. В качестве ответа укажите целую часть суммы найденных значений.
Эта задача уже не связана c математическими аспектами. Здесь просто достаточно воспользоваться встроенными функциями Excel.
Нужно найти среднее значение только отрицательных значений. Для нахождения среднего значения есть функция СРЗНАЧ. Но нам нужно именно отрицательных значений. Для нахождения среднего значения с условием есть функция СРЗНАЧЕСЛИ. Щёлкним по пустой ячейки и вы
В поле Диапазон мы должны указать все ячейки. Это можно легко сделать с помощью мышки.
В поле Условие укажем »
Для определения максимального значения, можно просто воспользоваться просто функцией МАКС, т.к. всё равно максимальное число будет положительным.
Максимальное значение получается 1000.
Сумма равна: 1000 + (-497,47) = 502,53
Целая часть равна 502.
Решим ещё одну old school’ную задачу, которая также полезна при изучении 9 задания из ЕГЭ по информатике 2022.
Электронная таблица содержит результаты ежечасного измерения температуры воздуха на протяжении трёх месяцев. Определите, сколько раз за время измерений результат очередного измерения оказывался ниже результата предыдущего на 2 и более градусов.
Внизу под числами представим мысленно область, где будет наше решение.
Таким образом, каждой ячейке соответствует своя ячейка в области решения.
Если выполняется условие задачи (т.е. предыдущее значение больше, чем данное значение на 2 и более градусов), то в соответствующей ячейке из области решения будет стоять «1», в противном случае «0».
Первая ячейка в каждой строчке нуждается в особой формуле, т.к. эта ячейка должна сравниваться с последней ячейкой предыдущей строчки.
Для остальных ячеек формула будет одинаковая, т.к. их значение сравнивается с предыдущем значение, т.е. с левой ячейкой.
Для первой ячейке не будем писать формулу, т.к. ей не с кем сравниваться.
Пишем формулу для строчек в ячейке C94:
Здесь используем функцию ЕСЛИ, как мы делали в предыдущих задачах.
Распространяем эту формулу на всю строчку.
И распространяем на всё пространство (кроме первого столбца)
Важно: Всего должно быть 91 строчка, как и в оригинале.
Теперь составим формулу для первого столбца. Кликаем в ячейку B95. И пропишем формулу:
Распространим данную формулу на весь столбец (на 91 строчку).
Осталось подсчитать количество единиц во всём рабочем пространстве, например, с помощью стандартной функции СУММ.
Количество единиц равно 458.
Круги Эйлера в информатике
Сегодня разберём задачи на круги Эйлера в информатике.
В языке запросов поискового сервера для обозначения логической операции «ИЛИ» используется символ «|», а для логической операции «И» — символ «&». В таблице приведены запросы и количество найденных по ним страниц некоторого сегмента сети Интернет.
Запрос | Найдено страниц (в тысячах) |
Пушкин | 3500 |
Лермонтов | 2000 |
Пушкин | Лермонтов | 4500 |
Какое количество страниц (в тысячах) будет найдено по запросу Пушкин & Лермонтов? Считается, что все запросы выполнялись практически одновременно, так что набор страниц, содержащих все искомые слова, не изменялся за время выполнения запросов.
Запрос «Пушкин | Лермонтов» обозначает, что поисковик выдаст страницы, где есть слова про «Пушкина», и страницы, где есть слова про «Лермонтова», а так же могут быть страницы, где написано и про «Пушкина», и про «Лермонтова» одновременно.
Этот факт обозначает то, что когда мы подсчитывали страницы про «Пушкина» (3500 страниц), мы подсчитали и те страницы, где было написано и про «Пушкина», и про «Лермонтова» одновременно.
Тоже самое и для количества страниц, где написано про «Лермонтова» (2000 страниц). В этом числе находятся и те, в которых одновременно упоминается и про «Пушкина», и про «Лермонтова».
В вопросе спрашивается, сколько страниц будет по запросу «Пушкин & Лермонтов«. Это обозначает, что как раз нужно найти количество страниц, где будет одновременно написано и про «Пушкина», и про «Лермонтова».
Это и будет ответ!
Теперь решим эту задачу с помощью Кругов Эйлера!
У нас всего есть две сущности: «Пушкин» и «Лермонтов». Поэтому рисуем два пересекающихся круга, желательно разными цветами.
Объединение двух кругов в общую фигуру ( показано фиолетовым цветом), показывает операцию «Пушкин | Лермонтов». Эта операция всегда стремится увеличить площадь, объединить площади других фигур!
Обратите внимание, что круги пересекаются, из-за этого сумма площадей двух кругов по отдельности (3500 + 2000 = 5500) больше чем у фигуры, которая характеризует логическую операцию «ИЛИ» «Пушкин | Лермонтов» (4500).
Нужно найти площадь фигуры Пушкин & Лермонтов, которая закрашена золотистым цветом. Данная логическая операция «И» стремится уменьшить площадь. Она обозначает общую площадь других фигур.
Найдём сначала заштрихованную часть синего круга. Она равна: площадь фиолетовой фигуры (4500) минус площадь красного круга (3500).
Теперь легко найти площадь золотистой фигуры. Для этого нужно от площади синего круга вычесть площадь заштрихованной части. Получается:
Получается, что по запросу Пушкин & Лермонтов будет найдено 1000 страниц.
Рассмотрим ещё одну не сложную разминочную задачу.
В языке запросов поискового сервера для обозначения логической операции «ИЛИ» используется символ «|», а для логической операции «И» – символ «&».
В таблице приведены запросы и количество найденных по ним страниц некоторого сегмента сети Интернет.
Запрос | Найдено страниц (в тысячах) |
Кокос | Ананас | 3400 |
Кокос & Ананас | 900 |
Кокос | 2100 |
Какое количество страниц (в тысячах) будет найдено по запросу Ананас?
Считается, что все запросы выполнялись практически одновременно, так что набор страниц, содержащих все искомые слова, не изменялся за время выполнения запросов.
У нас две сущности: Кокос и Ананас. Нарисуем два круга Эйлера, которые пересекаются между собой. Так же отменим все имеющееся данные.
Найдём заштрихованную часть красного круга.
После того, как нашли заштрихованную часть (такой полумесяц), можно найти уже площадь синего круга. Для этого нужно от площади фиолетовой фигуры отнять площадь заштрихованной части!
Разберём классическую задачу из информатики по кругам Эйлера.
В таблице приведены запросы и количество найденных по ним страниц некоторого сегмента сети Интернет.
Запрос | Найдено страниц (в тысячах) |
(Космос & Звезда) | (Космос & Планета) | 1100 |
Космос & Планета | 600 |
Космос & Планета & Звезда | 50 |
Какое количество страниц (в тыс.) будет найдено по запросу Космос & Звезда?
Считается, что все запросы выполнялись практически одновременно, так что набор страниц, содержащих все искомые слова, не изменялся за время выполнения запросов.
В этой задаче у нас три сущности: Космос, Планета, Звезда. Поэтому рисуем три круга Эйлера, которые пересекаются между собой.
Теперь отметим на нашем рисунке запрос (Космос & Звезда) | (Космос & Планета).
Сначала отменим для себя то, что находится в скобках. Первое Космос & Звезда
Теперь отметим вторую скобку Космос & Планета.
В выражении (Космос & Звезда) | (Космос & Планета) две скобки соединяет знак логического «ИЛИ». Значит, эти две области нужно объединить! Область (Космос & Звезда) | (Космос & Планета) отмечена фиолетовым цветом!
Отметим Космос & Планета ещё раз, т.к. для этого выражения известно количество страниц.
Площадь фигуры для выражения Космос & Планета & Звезда будет очень маленькая. Это общая часть для всех трёх кругов. Отметим её оранжевым цветом! Каждая точка этой фигуры должна одновременно быть в трёх кругах!
Найти нужно Космос & Звезда. Отменим на рисунке чёрным цветом ту область, которую нужно найти. Мы эту область уже отмечали салатовым цветом.
Теперь у нас есть все компоненты, чтобы решить эту задачу.
Найдём заштрихованную область.
Вся область Космос & Планета равна 600. А заштрихованная часть равна: область Космос & Планета (600) минус оранжевая область (50).
Тогда черная область легко находится: фиолетовая область (1100) минус заштрихованная область (550).
Закрепляем материал по задачам на Круги Эйлера.
В языке запросов поискового сервера для обозначения логической операции «ИЛИ» используется символ «|», а для обозначения логической операции «И» – символ «&». В таблице приведены запросы и количество найденных по ним страниц некоторого сегмента сети Интернет.
Запрос | Найдено страниц (в тысячах) |
Море & Солнце | 290 |
Море & Пляж | 355 |
Море & (Пляж | Солнце) | 465 |
Какое количество страниц (в тысячах) будет найдено по запросу Море & Пляж & Солнце? Считается, что все запросы выполнялись практически одновременно, так что набор страниц, содержащих все искомые слова, не изменялся за время выполнения запросов.
В задаче используются три сущности: Море, Пляж, Солнце. Поэтому нарисуем три пересекающихся круга Эйлера.
Отметим все области для которых нам даны количество страниц.
В начале отметим Море & (Пляж | Солнце). Для начало нарисуем область, которая в скобках (Пляж | Солнце)
Теперь нужно очертить общую часть фиолетовой области и зелёного круга и получится Море & (Пляж | Солнце). Отметим оранжевым цветом.
Теперь отметим Море & Пляж.
Теперь отметим Море & Солнце.
Найти нужно ту область, которая получается в результате выделения общей части для всех трёх кругов! Обозначим её чёрным цветом!
Найдём заштрихованную область!
Чтобы найти искомую чёрную область, нужно из Море & Пляж (355) вычесть заштрихованную область (175).
Решим ещё одну тренировочную задачу из информатики на Круги Эйлера.
В языке запросов поискового сервера для обозначения логической операции «ИЛИ» используется символ «|», а для обозначения логической операции «И» – символ «&».
В таблице приведены запросы и количество найденных по ним страниц некоторого сегмента сети Интернет.
Запрос | Найдено страниц (в тысячах) |
Англия & (Уэльс & Шотландия | Ирландия) | 450 |
Англия & Уэльс & Шотландия | 213 |
Англия & Уэльс & Шотландия & Ирландия | 87 |
Какое количество страниц (в тысячах) будет найдено по запросу
Считается, что все запросы выполнялись практически одновременно, так что набор страниц, содержащих все искомые слова, не изменялся за время выполнения запросов.
Нужно нарисовать 4 пересекающихся круга. Сначала нарисуем три круга, как обычно, оставив немного места для четвёртого круга.
Четвёртый круг для Ирландии нужно нарисовать так, чтобы он проходил через область (Англия & Уэльс & Шотландия). Это нам подсказывает сама таблица, где есть количество страниц для Англия & Уэльс & Шотландия, а так же для Англия & Уэльс & Шотландия & Ирландия.
Нужно отметить на рисунке Англия & (Уэльс & Шотландия | Ирландия). Это будем делать, как всегда поэтапно.
Область Уэльс & Шотландия выглядит так:
Добавим к этой области Ирландию через логическое «ИЛИ». Получается область (Уэльс & Шотландия | Ирландия). Произошло объединение серой области и жёлтого круга!
Теперь нужно сделать операцию логического «И» получившийся области с «Англией». Тогда область Англия & (Уэльс & Шотландия | Ирландия) примет вид:
Т.е. это общее между предыдущем серым контуром и красным кругом!
Отметим то, что нужно найти Англия & Ирландия чёрным цветом.
Искомую чёрную область легко найти, если из серой области вычесть кусочек, окрашенный в бирюзовый цвет!
Найдём, сколько страниц приходится на бирюзовый кусочек:
Найдём искомую чёрную область.
Это и будет ответ!
Разберём задачу из реального экзамена по информатике, которая была в 2019 году в Москве! (Сейчас в 2021 задачи не встречаются на Круги Эйлера)
Задача (ЕГЭ по информатике, 2019, Москва)
В таблице приведены запросы и количество страниц, которые нашёл поисковый сервер по этим запросам в некоторым сегменте Интернета:
Запрос | Найдено страниц (в тысячах) |
Суфле | 450 |
Корзина | 200 |
Эклер | 490 |
Суфле & Корзина | 70 |
Суфле & Эклер | 160 |
Корзина & Эклер | 0 |
Сколько страниц (в тысячах) будет найдено по запросу
Видим, что у нас три поисковых разных слова, поэтому будет три разных круга Эйлера!
Так же видим, что логическое «И» между словами Корзина и Эклер даёт 0 страниц. Это значит, что эти круги не пересекаются! Так же круги бы не пересекались, если бы операция логического «ИЛИ» совпадала бы с суммой этих кругов.
Видим, что Суфле имеет с двумя кругами пересечения, а Корзина и Эклер не пересекаются.
Отметим всё, что нам дано в условии.
Искомая жёлтая фигура складывается из заштрихованных областей и красного круга! Площадь красного круга мы знаем. Нужно найти площади заштрихованных частей.
Левая заштрихованная область находится просто:
Так же найдём площадь правой заштрихованной области:
Теперь можно найти искомую жёлтую область
Количество страниц (Суфле | Корзина | Эклер) =
= Красный круг (450) + лев. заштрих. область (310) + прав. заштрих. область (130) =
= 450 + 330 + 130 = 910
Задача решена, можно писать ответ.
Разберём ещё одну задачу из реального ЕГЭ уже 2020 года
Задача (ЕГЭ по информатике, 2020, Москва)
В таблице приведены запросы и количество страниц, которые нашёл поисковый сервер по этим запросам в некоторым сегменте Интернета:
Запрос | Найдено страниц (в тысячах) |
Аврора | 50 |
Крейсер | 45 |
Заря | 23 |
Аврора & Заря | 9 |
Заря & Крейсер | 0 |
Заря | Крейсер | Аврора | 93 |
Сколько страниц (в тысячах) будет найдено по запросу
Количество страниц при запросе Заря & Крейсер равно нулю. Значит, эти два круга не будут пересекаться.
Нарисуем все данные на рисунке.
Нужно найти для начала заштрихованную правую часть.
Левую заштрихованную область легко найти.
Тогда для правой заштрихованной области получается:
Тогда искомую область легко найти:
На этом всё! Надеюсь, вы теперь будете с удовольствием решать задачи по информатике с помощью Кругов Эйлера.
Сегодня будем решать 8 задание из ЕГЭ по информатике 2022 с помощью программирования.
Восьмое задание легко решается с помощью Python.
Приступим к практике решения задач.
Женя составляет 5-буквенные слова, в которых встречаются только буквы А, Б, В, Г, причём буква А появляется ровно 1 раз. Каждая из других допустимых букв может встречаться в слове любое количество раз или не встречаться совсем. Словом считается любая допустимая последовательность букв, не обязательно осмысленная. Сколько существует таких слов, которые может написать Женя?
Напишем программу на языке Python.
Т.к. слова состоят из 5-ти символов, то мы формируем пять вложенных циклов! В каждом цикле перебираем все буквы, которые нам дали.
Внутри циклов мы составляем само слово в переменной s. Таким образом, в переменной s «прокрутятся» все возможные комбинации.
Но мы подсчитываем не все комбинации, а только те, где всего одна буква А.
Важно не перепутать русские и английские буквы.
Продолжим развивать навыки решения 8 задания из ЕГЭ по информатике 2022.
Артур составляет 5-буквенные коды из букв Е, С, А, У, Л. Каждую букву нужно использовать ровно один раз, при этом нельзя ставить рядом две гласные. Сколько различных кодов может составить Артур?
Запрограммируем решение этой задачи на Питоне.
В первом условии учли, что каждая буква встречается в слове только один раз. Второе условие говорит о том, что две гласные не стоят рядом (перебрали все возможные сочетания гласных).
В задании 8 из ЕГЭ по информатике часто нужно проанализировать первую или последнюю букву в слове. Узнаем, как это можно сделать с помощью питона.
Задача (Проверяем первую букву слова)
Сколько слов длины 5, начинающихся с гласной буквы, можно составить из букв Е, Г, Э? Каждая буква может входить в слово несколько раз. Слова не обязательно должны быть осмысленными словами русского языка.
В этой тренировочной задаче из 8 задания ЕГЭ по информатике 2022 нужно держать на контроле первую букву в слове.
Подсчитываем только те комбинации, которые начинаются с гласных букв.
Интересный пример, где можно ошибиться в 8 задании из ЕГЭ по информатике.
Сергей составляет 6-буквенные коды из букв С, О, Л, О, В, Е, Й. Буква Й может использоваться в коде не более одного раза, при этом она не может стоять на первом месте, на последнем месте и рядом с буквой Е. Все остальные буквы могут встречаться произвольное количество раз или не встречаться совсем. Сколько различных кодов может составить Сергей?
Эта задача примечательная тем, что буква «О» в слове «СОЛОВЕЙ» повторяется. В этом случае мы должны убрать повторение буквы из перебора.
Здесь также учитываем остальные условия.
Василий составляет 4-буквенные коды из букв Г, А, Ф, Н, И, Й. Каждую букву можно использовать любое количество раз, при этом код не может начинаться с буквы Й и должен содержать хотя бы одну гласную. Сколько различных кодов может составить Василий?
Порешаем задачи из восьмого задания ЕГЭ по информатике на перебор чисел.
Сколько существует чисел, восьмеричная запись которых содержит 7 цифр, причём все цифры различны и никакие две чётные и две нечётные цифры не стоят рядом.
Число не может начинаться с нуля. Поэтому ноль был исключён из первого цикла.
Первое условие следит за тем, чтобы каждая цифра встречалась один раз в числе. Второе условие подсчитывает количество вариантов, когда первая цифра чётная. Второе условие следит за тем, чтобы чётность и нечётность цифр чередовалась. Третье условие, наоборот, подсчитывает варианты, когда первая цифра нечётная.
Функция int() преобразует символ в число. Ведь мы работаем именно с символами, а не с реальными числами.
Здесь следующий принцип составления условия. Два соседа должны быть равны. Берём одного соседа из пары, где цифры должны быть равны, и комбинируем его с другими цифрами. Пишем уже, чтобы цифры были не равны. Так же прописываем, чтобы две оставшиеся цифры также не были равны. Таким образом, перебираем все варианты.
Сколько существует различных трёхзначных чисел в шестнадцатиричной системе счисления, в записи которых цифры следуют слева направо в невозрастающем порядке?
Таким образом, в этой задачке функция ord() отлично подходит!
Следующий тип задач из задания 8 ЕГЭ по информатике лучше решать без программирования.
Все 4-буквенные слова, составленные из букв А, Е, И, О записаны в алфавитном порядке и пронумерованы. Вот начало списка:
Запишите слово, стоящее на 248-м месте от начала списка.
Важно: Нужно буквам присваивать цифры именно в том порядке, в котором они идут в самом правом столбце, потому что буквы могут дать в «перепутанном порядке» (например Е, А, И, О), и тогда ничего не получится.
Теперь запишем список с помощью цифр.
Получился обычный счёт в четверичной системе!! (всего используются 4 цифры: 0, 1, 2, 3). А слева нумерация показывает соответствие нашей десятичной системе. Но все числа десятичной системы в этой таблице соответствия сдвинуты на 1, ведь мы должны были начать с нуля.
Переведём число 247 в четверичную систему!
Получилось число 33134 в четверичной системе. Сделаем обратное декодирование в буквы. Таким образом, ответ будет ООЕО.
Ещё одна похожая задача 8 задания из примерных вариантов ЕГЭ по информатике 2022, но другой вариации.
Все 5-буквенные слова, составленные из букв А, Р, У, К записаны в алфавитном порядке. Вот начало списка:
1. ААААА
2. ААААК
3. ААААР
4. ААААУ
5. АААКА
……
Укажите номер слова УКАРА
У нас получилось четыре цифры! Значит снова можно слова превратить в таблицу соответствия между десятичной системой и четверичной системой. Но десятичная система смещена на 1 позицию.
1. 00000
2. 00001
3. 00002
4. 00003
5. 00010
……
Выписываем данное нам слово и посмотрим, какое число в четверичной системе было бы, если бы у нас были в место слов числа в четверичной системе!
Получили число в четверичной системе 310204. Узнаем, какое число в десятичной системе соответствовало этому числу, если бы была обычная таблица соответствия. Для этого переведём число 310204 из четверичной системы в десятичную. Перевод делаем по аналогии перевода из двоичной системы в десятичную.
Но помним, что у нас нумерация идёт на 1 быстрее, нежели мы бы поставили десятичные числа, как в таблице соответствия, потому что нумерация начинается не с нуля, а с 1. Поэтому к числу 840 нужно прибавить 1, и в ответе будет 841
Задача (Демонстрационный вариант ЕГЭ по информатике, 2020)
Все 4-буквенные слова, в составе которых могут быть буквы Н, О, Т, К, И, записаны в алфавитном порядке и пронумерованы, начиная с 1. Ниже приведено начало списка.
Под каким номером в списке идёт первое слово, которое начинается с буквы О?
Закодируем буквы цифрами.
Получилось 5 цифр ( 0, 1, 2, 3, 4 ), значит, будем работать в пятеричной системе.
Нужно найти номер первого слова, которое начинается с буквы О. Если говорить на языке пятеричных чисел, то нужно найти номер числа 30005. Мы «забиваем нулями», чтобы число было четырёхразрядное, т.к. слова 4-х буквенные. Именно нулями, потому что нужно именно первое слово найти.
Теперь, как в предыдущей задаче, переведём число 30005 из пятеричной системы в десятичную.
Но опять же должны прибавить 1 к числу 375, т.к. нумерация отличается от десятичных чисел на 1 в большую сторону.
Задача (Формула Шеннона)
В корзине лежат 8 черных шаров и 24 белых. Сколько бит информации несет сообщение о том, что достали черный шар?
Данную задачу нужно решать по формуле Шеннона
Найдём вероятность p того, что вытащили чёрный шарик.
p = (количество чёрных шаров) / (количество всех шаров) = 8 / (24 + 8) = 8 / 32 = 1 /4
p = 1 / 4
Применим формулу Шеннона.
Информатика code enjoy
Мини-игра Magic Lines написана на языке программирования C#. Игра отлично позволяет расслабиться, разгрузиться после трудового дня.
Правила игры
Чем больше мячей одновременно взорвалось, тем больше очков!
Мячи могут перемещаться по прямым линиям, а так же могут поворачивать под 90 градусов.
В игре два уровня сложности:
1. Новичок. За каждый ход добаляется 2 новых мяча.
2. Эксперт. За каждый ход попеременно добаляется то 3, то 2 мяча.
Здравствуйте! Сегодня речь пойдёт о 23 задании из ЕГЭ по информатике 2023.
Двадцать третье задание является последним заданием из первой части ЕГЭ по информатике 2023.
Давайте познакомимся с примерными задачами 23 задания из ЕГЭ по информатике 2023.
У исполнителя Удвоитель две команды, которым присвоены номера:
1. прибавить 3,
2. умножить на 2.
1 способ (самый эффективный, на Python).
Если число x достигло пункта назначения, то возвращаем 1. Если оно перескочило y, то возвращаем 0. А если ещё не дошло до y, то продолжаем вычисления с помощью рекурсии.
Ответ получается равен 9.
2 Способ (графический, для понимания)
Начинаем рассматривать задачку с конца. Если число нечётное, то оно может быть получено только с помощью первой команды. Если число чётное, то оно может быть получено с помощью двух команд.
Видим, что количество программ получается 9!
3 Способ (С помощью таблицы)
Числа | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
+3 | — | — | — | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
*2 | — | 1 | — | 2 | — | 3 | — | 4 | — | 5 |
Кол. Прог. | 1 | 1 | 0 | 2 | 1 | 0 | 2 | 3 | 0 | 3 |
Числа | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 |
+3 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 |
*2 | — | 6 | — | 7 | — | 8 | — | 9 | — | 10 | — | 11 | — | 12 | — |
Кол. Прог. | 3 | 0 | 3 | 5 | 0 | 6 | 5 | 0 | 6 | 8 | 0 | 9 | 8 | 0 | 9 |
В первой строке пишутся числа от 1 до 25 (до того числа, которое нужно получить).
Во второй строке пишутся числа, которые в сумме с 3 (тройкой) дают числа, написанные в первой строке. (Прим. начиная с 4, числа идут по порядку.)
В третьей строке пишутся числа, которые при умножении на 2 дают числа, написанные в первой строке. (Прим. числа так же идут по порядку через одну пустую ячейку.)
В четвёртой строке для единицы ставим 1. Для остальных ячеек: смотрим, какие числа участвуют во второй и третьей строке для конкретной ячейки. Затем, эти числа ищем в первой строке и пишем сумму количеств программ для этих чисел (Т.е. пишем сумму уже известных значений из четвёртой строки для этих чисел).
Таким образом, основная идея 23 задания из ЕГЭ по информатике заключается в том, что результат каждого шага опирается на результаты предыдущих шагов!
Получаем ответ 9!
Задача (с избегаемым узлом)
Исполнитель НечетМ преобразует число на экране. У исполнителя НечетМ две команды, которым присвоены номера:
1. прибавь 1
2. сделай нечётное
Первая из этих команд увеличивает число x на экране на 1, вторая переводит число x в число 2x+1. Например, вторая команда переводит число 10 в число 21. Программа для исполнителя НечетМ — это последовательность команд. Сколько существует таких программ, которые число 1 преобразуют в число 25, причём траектория вычислений не содержит число 24? Траектория вычислений программы — это последовательность результатов выполнения всех команд программы. Например, для программы 121 при исходном числе 7 траектория будет состоять из чисел 8, 17, 18.
Источник: Тренировочная работа по ИНФОРМАТИКЕ 11 класс 18 января 2017 года Вариант ИН10304
1 способ (самый эффективный, на Python).
Здесь на нельзя получать число 24, поэтому, если x будет равен 24, то мы возвращаем ноль.
Ответ получается равен 10.
2 способ (Решение с помощью таблицы).
Мы не может получать число 24! Значит, единственным способом добраться до числа 25 будет вторая команда.
Получается, что сначала нужно получить число 12, тогда 2 * 12 + 1 = 25 (2x+1). Это единственный путь!
Если записать с помощью массива:
Числа | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
2x+1 | — | — | 1 | — | 2 | — | 3 | — | 4 | — | 5 | — |
+1 | — | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
Кол. Прог. | 1 | 1 | 2 | 2 | 3 | 3 | 5 | 5 | 7 | 7 | 10 | 10 |
Ответ: 10
Задача (ЕГЭ по информатике, Москва, 2019)
У исполнителя есть три команды, которым присвоены номера:
1. Прибавить 1
2. Умножить на 3
3. Прибавить 2
Первая команда увеличивает число на экране на 1, вторая умножает его на 3, третья увеличивает его на 2.
Сколько существует программ, которые преобразуют исходное число 2 в число 12 и при этом траектория вычислений содержит число 9 и число 11?
1 способ (самый эффективный, на Python).
У нас числа 9 и 1 обязательные, поэтому разбиваем функцию следующим образом F(2, 9)*F(9, 11)*F(11, 12), через умножение. Это и будет ответ. Получается 50.
2 способ (с помощью таблицы).
От числа 11 до числа 12 можно добраться единственным путём (11 + 1 = 12).
От числа 9 до числа 11 можно добраться двумя способами (9 + 1 + 1 = 11, 9 + 2 = 11).
Найдём сколькими способами можно попасть от числа 2 до числа 9.
Числа | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
+1 | — | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
*3 | — | — | — | — | 2 | — | — | 3 |
+2 | — | — | 2 | 3 | 4 | 5 | 6 | 7 |
Кол-во программ | 1 | 1 | 2 | 3 | 6 | 9 | 15 | 25 |
Задача ( ЕГЭ по информатике, Москва, 2020)
У исполнителя есть три команды, которым присвоены номера:
1. Прибавить 1
2. Умножить на 3
3. Прибавить 2
Первая команда увеличивает число на экране на 1, вторая умножает его на 3, третья увеличивает на 2.
Сколько существует программ, которые преобразуют исходное число 3 в число 14 и при этом траектория вычислений содержит число 9?
1 способ (самый эффективный, на Python).
Ответ получается 112.
2 способ (с помощью таблицы).
Последней командой для получении любого числа из траектории программы может быть одна из трёх выше указанных команд!
Значит, количество программ для некоторого числа будет складываться из количества программ для тех чисел, из которых это число может быть получено.
Получается, что мы будем использовать основной принцип 23 задания из ЕГЭ по информатике: результат для некоторого числа опирается на результаты предыдущих чисел. Т.к. траектория вычислений программ обязательно должна проходить через число 9, то при вычислении результата для чисел больших 9, мы не можем опираться на результаты для чисел меньших 9 (Иначе мы пропустим число 9).
Числа | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 |
+1 | — | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |
*3 | — | — | — | — | — | — | 3 | — | — | — | — | — |
+2 | — | — | 3 | 4 | 5 | 6 | 7 | — | 9 | 10 | 11 | 12 |
Кол-во программ | 1 | 1 | 2 | 3 | 5 | 8 | 14 | 14 | 28 | 42 | 70 | 112 |
Ответ: 112
Посмотрим следующую задачу из 23 задания ЕГЭ по информатике 2023
Задача (с обязательным узлом, закрепление)
Исполнитель Май17 преобразует число на экране.
У исполнителя есть две команды, которым присвоены номера:
Первая команда увеличивает число на экране на 1, вторая увеличивает его на 3. Программа для исполнителя Май17 — это последовательность команд.
Сколько существует программ, для которых при исходном числе 1 результатом является число 17 и при этом траектория вычислений содержит число 9?
Траектория вычислений программы — это последовательность результатов выполнения всех команд программы. Например, для программы 12 при исходном числе 7 траектория будет состоять из чисел 8, 11, 12.
1 способ (самый эффективный, на Python).
Ответ получается 169.
2 способ (с помощью таблицы).
Если написать на языке массива
A[i] := A[i-1] + A[i-3], при i > 3.
Числа | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 |
+1 | — | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 |
+3 | — | — | — | 1 | 2 | 3 | 4 | 5 | 6 | — | — | 9 | 10 | 11 | 12 | 13 | 14 |
Кол-во программ | 1 | 1 | 1 | 2 | 3 | 4 | 6 | 9 | 13 | 13 | 13 | 26 | 39 | 52 | 78 | 117 | 169 |
При составлении значения для числа 10, мы не имеем право «заглядывать» за число 9, иначе число 9 будет пропущено! Поэтому для следующих трёх чисел (9, 9 + 1, 9 + 1 + 1), начиная с 9, будет 13 программ.
Для числа 17 получается ответ 169.
Сегодня на повестке дня 8 задание из ЕГЭ по информатике 2021. Данный тип заданий включает в себя нахождение количества вариантов, элементы комбинаторики и другие математические понятия.
Перейдём к практике решения задач задания 8 ЕГЭ по информатике 2021.
Все 4-буквенные слова, составленные из букв А, Е, И, О записаны в алфавитном порядке и пронумерованы. Вот начало списка:
Запишите слово, стоящее на 248-м месте от начала списка.
Важно: Нужно буквам присваивать цифры именно в том порядке, в котором они идут в самом правом столбце, потому что буквы могут дать в «перепутанном порядке» (например Е, А, И, О), и тогда ничего не получится.
Теперь запишем список с помощью цифр.
Получился обычный счёт в четверичной системе!! (всего используются 4 цифры: 0, 1, 2, 3). А слева нумерация показывает соответствие нашей десятичной системе. Но все числа десятичной системы в этой таблице соответствия сдвинуты на 1, ведь мы должны были начать с нуля.
Переведём число 247 в четверичную систему!
Получилось число 33134 в четверичной системе. Сделаем обратное декодирование в буквы. Таким образом, ответ будет ООЕО.
Ещё одна похожая задача 8 задания из примерных вариантов ЕГЭ по информатике, но другой вариации.
Все 5-буквенные слова, составленные из букв А, Р, У, К записаны в алфавитном порядке. Вот начало списка:
1. ААААА
2. ААААК
3. ААААР
4. ААААУ
5. АААКА
……
Укажите номер слова УКАРА
У нас получилось четыре цифры! Значит снова можно слова превратить в таблицу соответствия между десятичной системой и четверичной системой. Но десятичная система смещена на 1 позицию.
1. 00000
2. 00001
3. 00002
4. 00003
5. 00010
……
Выписываем данное нам слово и посмотрим, какое число в четверичной системе было бы, если бы у нас были в место слов числа в четверичной системе!
Получили число в четверичной системе 310204. Узнаем, какое число в десятичной системе соответствовало этому числу, если бы была обычная таблица соответствия. Для этого переведём число 310204 из четверичной системы в десятичную. Перевод делаем по аналогии перевода из двоичной системы в десятичную.
Но помним, что у нас нумерация идёт на 1 быстрее, нежели мы бы поставили десятичные числа, как в таблице соответствия, потому что нумерация начинается не с нуля, а с 1. Поэтому к числу 840 нужно прибавить 1, и в ответе будет 841
Задача (Демонстрационный вариант ЕГЭ по информатике, 2020)
Все 4-буквенные слова, в составе которых могут быть буквы Н, О, Т, К, И, записаны в алфавитном порядке и пронумерованы, начиная с 1. Ниже приведено начало списка.
Под каким номером в списке идёт первое слово, которое начинается с буквы О?
Закодируем буквы цифрами.
Получилось 5 цифр ( 0, 1, 2, 3, 4 ), значит, будем работать в пятеричной системе.
Нужно найти номер первого слова, которое начинается с буквы О. Если говорить на языке пятеричных чисел, то нужно найти номер числа 30005. Мы «забиваем нулями», чтобы число было четырёхразрядное, т.к. слова 4-х буквенные. Именно нулями, потому что нужно именно первое слово найти.
Теперь, как в предыдущей задаче, переведём число 30005 из пятеричной системы в десятичную.
Но опять же должны прибавить 1 к числу 375, т.к. нумерация отличается от десятичных чисел на 1 в большую сторону.
Задача (Досрочная волна 2020 ЕГЭ по информатике, вариант 1)
Вася составляет 5-буквенные слова, в которых есть только буквы В, О, Л, К, причём буква В используется в каждом слове ровно 1 раз. Каждая из других допустимых букв может встречаться в слове любое количество раз или не встречаться совсем. Словом считается любая допустимая последовательность букв, не обязательно осмысленная. Сколько существует таких слов, которые может написать Вася?
Для начала решим вводную подзадачу.
Т.е буквы могут повторяться!
Такая конструкция сильно напоминает перебор чисел, где вместо цифр используются буквы.
Выведем общую формулу для количества вариантов, когда символы могут повторяться!
Для трёхразрядных чисел от 000 до 999:
Вернёмся к пятибуквенным словам и нашей подзадаче. Здесь количество букв (разрядов) в слове равно 5, количество допустимых символов равно 4 ( В, О, Л, К ).
Вернёмся к изначальной задаче. Сначала найдём количество вариантов, когда буква В находится в самой левой ячейке!
Применим формулу! Здесь слово сократилось до четырёхразрядного. А количество букв для использования 3 (О, Л, К).
Но буква В так же может стоять во второй ячейке слева. Этот случай тоже даст 81 других комбинаций. Буква В может стоять в каждой из 5-ти ячеек, и везде будет получатся 81 комбинация.
Таким образом, окончательный ответ будет:
N = 81 * 5 = 405 различных вариантов.
Разобравшись с этой задачей, больше половины тренировочных задач десятого задания из различных книг и сайтов по подготовке к ЕГЭ по информатике будут решаться, как по маслу!
Рассматриваются символьные последовательности длины 5 в шестибуквенном алфавите <У, Ч, Е, Н, И, К>. Сколько существует таких последовательностей, которые начинаются с буквы У и заканчиваются буквой К?
Применим главную формулу 8 задания из ЕГЭ по информатике
Здесь буквы могут изменяться на 3 ячейках! Значит, в формуле i=3. Количество допустимых символов, которые можно поставить в каждую ячейку равно 6. Значит, в формуле m=6.
В ответе будет 216.
Примечание: Здесь можно использовать все буквы в каждой ячейке, включая У и К. В некоторых задачах их уже использовать нельзя, т.е. сказано, что буквы У и К используются один раз в слове. Тогда в формуле m, будет на 2 единицы меньше. Нужно внимательно читать задачу!
Задача (Демонстрационный вариант ЕГЭ по информатике, 2019)
Вася составляет 5-буквенные слова, в которых есть только буквы З, И, М, А, причём в каждом слове есть ровно одна гласная буква и она встречается ровно 1 раз. Каждая из допустимых согласных букв может встречаться в слове любое количество раз или не встречаться совсем. Словом считается любая допустимая последовательность букв, не обязательно осмысленная. Сколько существует таких слов, которые может написать Вася?
Рассмотрим количество вариантов, когда гласная И стоит в первом месте!
Подсчитаем количество слов с помощью супер-формулы
Длина изменяющихся ячеек равна 4, а количество допустимых букв равно 2.
Но буква И может стоять не только на первом месте. Она так же может стоять и на 2, и на 3, и на 4, и на 5 месте. Каждый такое случай добавляет столько же новых слов.
Значит, при использовании только буквы И будет количество слов 16 * 5 = 80. Ещё столько же слов добавится, если в словах вместо буквы И будет использоваться буква А. Поэтому окончательный ответ будет 80 * 2 = 160
Отработаем главную формулу 8 задания из ЕГЭ по информатике.
Задача (Развиваем понимание формулы!)
Сколько слов длины 5, начинающихся с согласной буквы и заканчивающихся гласной буквой, можно составить из букв З, И, М, А? Каждая буква может входить в слово несколько раз. Слова не обязательно должны быть осмысленными словами русского языка.
Рассмотрим, какие варианты могут быть, если у нас на первом месте стоит согласная, а на последнем месте гласная
Получилось 4 разных случая. Подсчитаем, сколько слов можно составить при одном случае.
Длина изменяющихся ячеек равна 3, а количество возможных букв 4.
Но т.к. таких случая у нас четыре, то ответ будет 4 * 64 = 256
Рассмотрим важнейший «метод умножения» при решении 8 задания из ЕГЭ по информатике.
Эта задача отличается от уже разобранных тем, что каждую букву можно использовать один раз. В этой задаче удобнее воспользоваться немного другим методом решения! «Методом умножения»!
Решим вводную подзадачу (без дополнительных ограничений).
Чтобы найти возможные варианты, перемножаем для каждой ячейки количество букв из которых у нас есть выбор!
Вернёмся к изначальной задаче!
В начале подсчитаем «методом умножения» количество слов, не обращая внимание, на условие, в котором сказано, что слово не может содержать сочетание АЕ.
В формуле стоят почти все те же самые числа, как и в вводном примере, только первый множитель не 6, а 5. Это произошло из-за того, что у нас в задаче слово не может начинаться на букву Й. Значит, выбор на первую позицию будет не из 6 букв, а из 5.
Но в 600 комбинаций входят и те случаи, когда в слове присутствует сочетание АЕ. Теперь найдём сколько таких слов, где присутствует сочетание АЕ
Узнаем количество вариантов в каждом таком случае.
N1 = 4 * 3 * 2 * 1 = 24
На первом месте мы не можем использовать букву Й, поэтому мы на первом месте выбираем из 3 букв.
N2 = 3 * 3 * 2 * 1 = 18
Аналогично предыдущему случаю.
N3 = 3 * 3 * 2 * 1 = 18
N4 = 3 * 3 * 2 * 1 = 18
Всего слов с сочетанием АЕ будет
24 + 18 + 18 + 18 + 18 = 96
Значит, всего слов, которые удовлетворяют условию задаче будет
Примечание: Метод умножения можно было использовать и в задачах, которые мы рассмотрели ранее. Например, в задаче «Закрепление формулы» в первой свободной ячейке выбираем из 6 букв, во второй свободной ячейке тоже из 6 букв, и в третий свободной ячейке тоже можно использовать 6 букв. Значит, по методу умножения получается N = 6 * 6 * 6 = 6 3 = 216
Задача (Закрепления «метода умножения»)
Полина составляет 6-буквенные коды из букв П, О, Л, И, Н, А. Каждую букву нужно использовать ровно 1 раз, при этом нельзя ставить подряд две гласные или две согласные. Сколько различных кодов может составить Полина?
Опять сказано, что каждая буква используется 1 раз, следовательно, нужно применять «метод умножения».
На первое место можно выбрать из 6 букв, предположим, мы выберем согласную. Тогда на второе место нужно выбирать из 3 гласных. Потом опять должна идти согласная, но их у нас осталось только 2. Далее, на следующее место выбираем из 2 гласных букв. И на предпоследнее место выбирается 1 согласная, а на последнее место остаётся 1 гласная.
Т.к. количество гласных букв и согласных одинаковое, и равно трём, то если мы бы начали делать «метод умножения» с гласной буквы, количество вариантов бы не поменялось.
Зная формулу, без проблем решим данную примерную задачу из ЕГЭ по информатике.
У нас есть 2 символа, которые можно использовать: точка и тире. Фраза, что сообщение может иметь «не менее трёх и не более четырёх сигналов», означает, что сообщения могут быть длиною 3 символа и длиною 4 символа.
Подсчитаем общее количество вариантов.
Значит, для 24 различных символов (цифр, букв, знаков пунктуации и т.д.) мы найдём различные комбинации, чтобы их закодировать
Световое табло состоит из цветных индикаторов. Каждый индикатор может окрашиваться в четыре цвета: белый, черный, желтый и красный. Какое наименьшее количество лампочек должно находиться на табло, чтобы с его помощью можно было передать 300 различных сигналов?
Нам нужно закодировать 300 различных вариантов! Имеются 4 различных лампочки! (Они имеют смысл, как количество допустимых символов!) На этот раз нужно узнать количество лампочек (количество разрядов, «длину слова»). Применяем формулу.
N = 4 x = 300
Не найдётся такое целое x, чтобы равенство стало верным. Поэтому берём целое минимальное x такое, чтобы 4 x больше 300.
Пять лампочек на табло хватит, чтобы закодировать 300 сигналов, но, к сожалению, много комбинаций просто не пригодится!
На рисунке показано две комбинации, как можно выбрать в подарок 3 книги из 5.
Данную задачку нужно решать используя формулу сочетаний из раздела комбинаторика.
Примечание: При использовании формулы сочетаний, не важен порядок, в котором мы выбираем одни и те же книги. Это будет один и тот же вариант.
Ответ: 10
Следующая задача часто встречается в книгах по подготовке к ЕГЭ по информатике.
Задача (Главная формула + сочетания)
Шифр кодового замка представляет собой последовательность из пяти символов, каждый из которых является цифрой от 1 до 5. Сколько различных вариантов шифра можно задать, если известно, что цифра 1 встречается ровно три раза, а каждая из других допустимых цифр может встречаться в шифре любое количество раз или не встречаться совсем?
В начале нужно посчитать, сколькими способами на 5-ти ячейках можно расположить 3 единицы!
Обратите внимание, как будто мы выбираем 3 книги в подарок из 5 возможных! Значит, опять применяем формулу сочетаний из комбинаторики. Мы вычисляли уже её точно с такими же числами в прошлой задаче, количество вариантов равно 10.
Подсчитаем, сколько вариантов кодового замка можно составить при одном определённом расположении трёх единиц.
Применим формулу, есть две ячейки, в которых изменяются цифры, а в каждой ячейке может быть одна из 4 цифр.
Т.к. различных вариантов, как расположить единицы на 5 ячейках равно 10, то ответ будет 16 * 10 = 160
Ещё одна задача из примерных вариантов по подготовке к ЕГЭ по информатике.
Есть таблица с 20 командами и для каждой команды есть результат по 10-ти видам состязаний.
1 команда | 2 команда | 3 команда | . | 20 команда | |
1 дисциплина | 1 | — | 1 | . | 3 |
2 дисциплина | — | 2 | 1 | . | 2 |
. | . | . | . | . | . |
10 дисциплина | 1 | 1 | 2 | . | — |
Сделав рисунок, задача обрела привычные очертания.
Как будто мы решаем задачу с перебором слов. Но здесь длина слова неизвестна, а количество вариантов, которое должно получится уже дано и равно 4 (четырём). Применим главную формулу из 10 задания из ЕГЭ по информатике.
N = m i = 2 i = 4
i=2 бита (длина равна «2 буквам», если воспринимать задачу, как со словами.)
Одна ячейка таблицы весит 2 бита. Найдём количество ячеек во всей таблице соревнований.
Тогда вся таблица будет весит:
Формула Шеннона
В корзине лежат 8 черных шаров и 24 белых. Сколько бит информации несет сообщение о том, что достали черный шар?
Данную задачу нужно решать по формуле Шеннона
Найдём вероятность p того, что вытащили чёрный шарик.
p = (количество чёрных шаров) / (количество всех шаров) = 8 / (24 + 8) = 8 / 32 = 1 /4
p = 1 / 4
Применим формулу Шеннона.
Источники:
- http://code-enjoy.ru/razbor_demoversii_ege_po_informatike_2022_ch2/
- http://code-enjoy.ru/ege_po_informatike_zadanie_2_moshneyshiy_metod/
- http://code-enjoy.ru/ege_po_informatike_2022_zadanie_2_ay_da_python/
- http://code-enjoy.ru/ege_po_informatike_2022_zadanie_4_kodirovanie_i_dekodirovanie_informacii/
- http://code-enjoy.ru/razbor_demoversii_ege_po_informatike_2022_ch5/
- http://code-enjoy.ru/ege_po_informatike_2022_zadanie_6_metod_perebora/
- http://code-enjoy.ru/ege_po_informatike_2022_zadanie_12_vpered_k_pobede/
- http://code-enjoy.ru/ege_po_informatike_2022_zadanie_11_kolichestvo_informacii/
- http://code-enjoy.ru/ege_po_informatike_2021_zadanie_24_obrabotka_simvolnoy_informacii/
- http://code-enjoy.ru/ege_po_informatike_2022_zadanie_3_baza_dannih/
- http://code-enjoy.ru/ege_po_informatike_2022_zadanie_15_prostim_yazikom/
- http://code-enjoy.ru/razbor_demoversii_ege_po_informatike_2022_ch4/
- http://code-enjoy.ru/ege_po_informatike_2022_zadanie_5_lineniy_algoritm/
- http://a.pr-cy.ru/code-enjoy.ru/
- http://code-enjoy.ru/razbor_demoversii_ege_po_informatike_2022_ch3/
- http://code-enjoy.ru/ege_po_informatike_2022_zadanie_16_rekursiya/
- http://code-enjoy.ru/ege_po_informatike_2022_zadanie_14_chempionskaya_podgotoka/
- http://code-enjoy.ru/ege_po_informatike_2022_zadanie_17_pishem_programmu/
- http://code-enjoy.ru/razbor_demoversii_oge_po_informatike_2022/
- http://code-enjoy.ru/ege_po_informatike_2023_zadanie_25_delimost_chisel/
- http://code-enjoy.ru/ege_po_informatike_2021_zadanie_4_uslovie_fano/
- http://code-enjoy.ru/oge_po_informatike_2020_zadanie_1/
- http://code-enjoy.ru/ege_po_informatike_2022_zadanie_18_tablica_chisel/
- http://code-enjoy.ru/ege_po_informatike_2022_zadanie_9_elektroniie_tablica/
- http://code-enjoy.ru/krugi_eylera_v_informatike/
- http://code-enjoy.ru/ege_po_informatike_2022_zadanie_8_super_combo/
- http://code-enjoy.ru/game_magic_lines/
- http://code-enjoy.ru/ege_po_informatike_2023_zadanie_23_chudo_shablon/
- http://code-enjoy.ru/ege_po_informatike_2021_zadanie_8_super_razbor/