Шаблоны для заданий егэ информатика

Шаблоны программ для задач в ЕГЭ по Информатике на Python

В текущей версии ЕГЭ довольно много заданий, которые можно (а иногда и обязательно) сделать на компьютере, однако их можно существенно упростить, если знать шаблон, в который достаточно дописать условие данной задачи. В этом репозитории я постараюсь собрать все шаблоны, которые были придуманы учителями и учениками в ходе подготовки (а через раздел «Issues» можно предложить и свои шаблоны).
Скачать шаблоны и примеры в формате .py можно, нажав кнопку Code и в ней Download ZIP. Все примеры будут лежать в папке examples, а шаблоны в templates.

Задания

Задание №2

Задание №6

Задание №12

Задание №14

Задание №16

Задание №17

Задание №19-21

Задание №22

Задание №23

Благодарности

Сайту РешуЕГЭ за предоставленные задания

На уроке рассматривается разбор 2 задания ЕГЭ по информатике, дается подробное объяснение того, как решать подобные задачи

Содержание:

  • Объяснение задания 2 ЕГЭ по информатике
    • Таблицы истинности и порядок выполнения логических операций
  • Решение заданий 2 ЕГЭ по информатике
    • Задания для тренировки

2-е задание: «Таблицы истинности»

Уровень сложности

— базовый,

Требуется использование специализированного программного обеспечения

— нет,

Максимальный балл

— 1,

Примерное время выполнения

— 3 минуты.

  
Проверяемые элементы содержания: Умение строить таблицы истинности и логические схемы

Типичные ошибки и рекомендации по их предотвращению:

«Игнорирование прямо указанного в условии задания требования, что заполненная таблица истинности не должна содержать одинаковых строк. Это приводит к внешне правдоподобному, но на самом деле неверному решению»

ФГБНУ «Федеральный институт педагогических измерений»

Таблицы истинности и порядок выполнения логических операций

Для логических операций приняты следующие обозначения:

операция пояснение в программировании
¬ A, A не A (отрицание, инверсия) not(A)
A ∧ B, A ⋅ B A и B (логическое умножение, конъюнкция) A and B
A ∨ B, A + B A или B (логическое сложение, дизъюнкция) A or B
A → B импликация (следование) A <= B
A ↔ B, A ≡ B, A ∼ B эквиваленция (эквивалентность, равносильность) A==B (python)
A=B(pascal)
A ⊕ B строгая дизъюнкция A != B (python)
A <> B (pascal)

Егифка ©:

теория таблицы истинности

Отрицание (НЕ):

Таблица истинности операции НЕ

Таблица истинности операции НЕ

Конъюнкция (И):

Таблица истинности операции И (конъюнкция)

Таблица истинности операции И (конъюнкция)

Дизъюнкция (ИЛИ):

Таблица истинности операции ИЛИ (дизъюнкция)

Таблица истинности операции ИЛИ (дизъюнкция)

Импликация (если…, то…):

Таблица истинности операции Импликация (если..., то...)

Таблица истинности операции Импликация (если…, то…)

Эквивалентность (тогда и только тогда, …):

Таблица истинности операции Эквивалентность (тогда и только тогда, ...)

Таблица истинности операции Эквивалентность (тогда и только тогда, …)

Сложение по модулю 2 (XOR):

A B A ⊕ B
0 0 0
0 1 1
1 0 1
1 1 0

Порядок выполнения операций:

  • если нет скобок, сначала выполняются все операции «НЕ», затем – «И», затем – «ИЛИ», импликация, равносильность

Еще о логических операциях:

  • логическое произведение X∙Y∙Z∙… равно 1, т.е. выражение является истинным, только тогда, когда все сомножители равны 1 (а в остальных случаях равно 0)
  • логическая сумма X+Y+Z+… равна 0, т.е. выражение является ложным только тогда, когда все слагаемые равны 0 (а в остальных случаях равна 1)

О преобразованиях логических операций читайте здесь.

Егифка ©:

решение 2 задания ЕГЭ

Решение заданий 2 ЕГЭ по информатике


Задание 2_11: Решение 2 задания ЕГЭ по информатике:

Логическая функция F задается выражением

(¬x ∨ y ∨ z) ∧ (x ∨ ¬z ∨ ¬w)

Ниже приведен фрагмент таблицы истинности функции F, содержащей все наборы аргументов, при которых функция F ложна.

Определите, какому столбцу таблицы истинности функции F соответствует каждая из переменных x, y, z, w.

Перем.1 Перем.2 Перем.3 Перем.4 F
??? ??? ??? ??? F
0 1 1 0 0
0 1 1 1 0
1 0 0 0 0
1 1 0 0 0

В ответе запишите буквы в том порядке, в котором идут соответствующие им столбцы.

✍ Решение:

✎ Способ 1. Электронные таблицы Excel + Логические размышления:

  • Отобразим перебор всех значений использующихся в выражении переменных (всю таблицу истинности). Поскольку в выражении используются 4 переменных, то строк таблицы будет 24=16:
  • егэ 2 электронные таблицы

  • Далее обе скобки исходного выражения необходимо записать в виде логического выражения, каждую — в отдельном столбце. Также в отдельном столбце добавьте формулу итоговой функции F:
  • егэ 2

  • Выделите таблицу и отсортируйте строки по столбцу с результатом функции. Для этого в меню Главная => Настраиваемая сортировка =>:
  • Получили верхние строки таблицы — с которыми сравним исходную таблицу и найдем результат:
  • Получаем следующий порядок переменных:
  • xwzy
      ✎ Способ 2. Программирование:
      Язык python:

      print('x y z w')
      for x in 0, 1:
        for y in 0, 1:
          for z in 0, 1:
            for w in 0, 1:
              F = (not(x) or y or z) and (x or not(z) or not(w))
              if not(F):
                print(x, y, z, w)
    • В результате будут выведены значения для F=0:
    • x y z w
      0 0 1 1
      0 1 1 1
      1 0 0 0
      1 0 0 1
      
    • Сопоставив их с исходной таблицей, получим результат:
    • xwzy

        Язык pascalAbc.net:

      begin
        writeln('x':7, 'y':7, 'z':7,'w':7);
        for var x:=false to true do
          for var y:=false to true do
            for var z:=false to true do
              for var w:=false to true do
                if not((not x or y or z) and (x or not z or not w)) then
                  writeln(x:7, y:7, z:7,w:7);
      end.
    • В результате будут выведены значения для F=0:
    •       x      y      z      w
        False  False   True   True
        False   True   True   True
         True  False  False  False
         True  False  False   True
      
    • Где false = 0, True = 1
    • Сопоставив их с исходной таблицей, получим результат:
    • Ответ:

      xwzy
      ✎ Способ 3. Логические размышления:

      • Внешняя операция выражения — конъюнкция (). Во всех указанных строках таблицы истинности функция принимает значение 0 (ложь). Конъюнкция ложна аж в трех случаях, поэтому проверить на ложь очень затруднительно. Тогда как конъюнкция истинна (= 1) только в одном случае: когда все операнды истинны. Т.е. в нашем случае:
      • (¬x ∨ y ∨ z) ∧ (x ∨ ¬z ∨ ¬w) = 1 когда:
        1. (¬x ∨ y ∨ z) = 1 
        И 
        2. (x ∨ ¬z ∨ ¬w) = 1
        
      • Общая идея дальнейшего решения такова: поскольку внешняя операция — конъюнкция, и результат ее истинен, когда оба сомножителя в скобках будут истинны (=1), то нам необходимо сначала составить все наборы таблицы истинности для обоих сомножителей в скобках. Затем, так как конъюнкция подразумевает пересечение, необходимо сопоставить обе таблицы истинности и выбрать для каждого подходящего набора первого сомножителя подходящий (подходящие) набор (наборы) второго сомножителя. НО! так как у нас в задании известны только наборы для F = 0, то мы сопоставлять будем наборы, которые возвращают ложь. Теперь подробно.
      • Разобьём исходное выражение на две части и составим таблицу истинности отдельно для двух частей.
      • Для сомножителя (¬x ∨ y ∨ z):
      • x y z результат
        0 0 0 1
        0 0 1 1
        0 1 0 1
        0 1 1 1
        1 0 0 0
        1 0 1 1
        1 1 0 1
        1 1 1 1
      • Получили ложь в одном наборе, так как дизъюнкция () ложна только тогда, когда ложны все операнды.
      • Для сомножителя (x ∨ ¬z ∨ ¬w):
      • x z w результат
        0 0 0 1
        0 0 1 1
        0 1 0 1
        0 1 1 0
        1 0 0 1
        1 0 1 1
        1 1 0 1
        1 1 1 1
      • Соответственно, опять получили ложь в одном наборе, когда ложны все операнды.
      • Учтем, что нам нужно выбрать и «пересечь» (так как внешняя операция ) из всех наборов только те, которые возвращают ложь (так как по заданию известны только строки, где F = 0):
      • Решение 2 задания ЕГЭ по информатике

      • Выпишем только пересеченные наборы:
      • x y z w F
        0 0 1 1 0
        0 1 1 1 0
        1 0 0 0 0
        1 0 0 1 0
      • Сравнив вторую строку заданной таблицы и вторую строку получившейся таблицы, находим, что x находится в первом столбце.
      • x y z w F
        0 0 1 1 0
        0 1 1 1 0
        1 0 0 0 0
        1 0 0 1 0
        x ??? ??? ??? F
        0 1 1 0 0
        0 1 1 1 0
        1 0 0 0 0
        1 1 0 0 0
      • Сравнив первую и четвертую одинаковые строки получившейся таблицы, находим, что y в обоих случаях равен 0. Значит он находится в 4-м столбце.
      • x y z w F
        0 0 1 1 0
        0 1 1 1 0
        1 0 0 0 0
        1 0 0 1 0
        x ??? ??? y F
        0 1 1 0 0
        0 1 1 1 0
        1 0 0 0 0
        1 1 0 0 0
      • Сравнив предпоследнюю и последнюю строки получившейся таблицы, там где x = 1, находим, что z в обоих случаях равен 0, тогда как w принимает значение и 1 и 0. Значит z находится в 3-м столбце.
      • x y z w F
        0 0 1 1 0
        0 1 1 1 0
        1 0 0 0 0
        1 0 0 1 0
      • Для w остается второй столбец:
      • x w z y F
        0 1 1 0 0
        0 1 1 1 0
        1 0 0 0 0
        1 1 0 0 0

      Результат: xwzy

    🎦 Видеорешение (бескомпьютерный вариант):

    📹 здесь
    📹 Видеорешение на RuTube здесь


    Задание 2_12: Разбор 2 задания ЕГЭ:

    Миша заполнял таблицу истинности функции:

    (¬z ∧ ¬(x ≡ y)) → ¬(y ∨ w)

    но успел заполнить лишь фрагмент из трех различных ее строк, даже не указав, какому столбцу таблицы соответствует каждая из переменных w, x, y, z:

    Перем.1 Перем.2 Перем.3 Перем.4 F
    ??? ??? ??? ??? F
    1 1 0
    1 0 0
    1 1 0 0

    Определите, какому столбцу таблицы соответствует каждая из переменных x, y, z, w.

    В ответе напишите буквы w, x, y, z в том порядке, в котором идут соответствующие им столбцы.

    Подобные задания для тренировки

    ✍ Решение:
     

    ✎ Способ 1. Логические размышления (бескомпьютерный вариант):

    • Решим задание методом построения полной таблицы истинности.
    • Посчитаем общее количество строк в таблице истинности и построим ее:
    • 4 переменных -> 24 = 16 строк
      

      полная таблица истинности

    • Для начала упростим выражение и выделим в нем две основные части относительно внешней операции (операция, которая выполняется последней).
    • (¬z ∧ ¬(x ≡ y)) → ¬(y ∨ w)
      1. Избавимся от импликации:
      ¬(¬z ∧ ¬(x ≡ y)) ∨ ¬(y ∨ w)
      2. Внесем знак отрицания в скобки (закон Де Моргана):
      (z ∨ (x ≡ y))(¬y ∧ ¬w) = 0
         1 часть = 0     2 часть = 0
      
      * Исходное выражение должно быть = 0. Дизъюнкция = 0, когда оба операнда равны 0.
      
    • Разбили исходное выражение на две части, теперь добавим столбцы для двух частей в таблицу истинности:
    • таблица истинности

    • Поясним: в первой части внешняя операция — дизъюнкция (ложна, когда оба операнда ложны). Во второй части внешняя операция — конъюнкция — ложна во всех случаях кроме того, когда оба операнда истинны:
    • (z ∨ (x ≡ y)) = 0 когда z = 0 и x ≡ y = 0
      
      ¬y ∧ ¬w = 0 когда:
      1. ¬y = 0  ¬w = 0
      2. ¬y = 1  ¬w = 0
      3. ¬y = 0  ¬w = 1
      
    • В результирующей таблице истинности получили только три набора значений переменных при которых выражение возвратит ложь.
    • x y w z F
      0 1 0 0 0
      0 1 1 0 0
      1 0 1 0 0
    • Сравнив их с исходной таблицей истинности, имеем:
    • y w x z F
      1 1 0 0 0
      1 0 0 0 0
      0 1 1 0 0
    • Таким образом, ответ: ywxz

    Результат: ywxz

    ✎ Способ 2. Программирование:

      Язык PascalAbc.net:

      begin
        writeln('x':7, 'y':7, 'z':7,'w':7);
        for var x:=false to true do
          for var y:=false to true do
            for var z:=false to true do
              for var w:=false to true do
                if not((not z and (x xor y)) <= not(y or w)) then
                  writeln(x:7, y:7, z:7,w:7);
      end.
    • В результате будут выведены значения для F=0:
    •       x      y      z      w
        False   True  False  False
        False   True  False   True
         True  False  False   True
      
    • Где false = 0, True = 1
    • Сопоставив их с исходной таблицей, получим результат: ywxz

      Язык Python:

      print ('x y z w')
      for x in 0,1:
          for y in 0,1:
              for z in 0,1:
                  for w in 0,1:
                      F=(not z and not(x==y))<=(not(y or w))
                      if not F:
                          print (x,y,z,w)
    • В результате будут выведены значения для F=0:
    • x y z w
      0 1 0 0
      0 1 0 1
      1 0 0 1
      

      Сопоставив их с исходной таблицей, получим результат:

    Результат: ywxz

    🎦 Доступно видео решения этого задания (бескомпьютерный вариант):

      
    📹 здесь
    📹 Видеорешение на RuTube здесь

    🎦 Видео (решение 2 ЕГЭ в Excel):

     
    📹 здесь
    📹 Видеорешение на RuTube здесь
    📹 Видеорешение на RuTube здесь (Программирование)


    Задание 2_10: Решение 2 задания ЕГЭ по информатике:

    Логическая функция F задается выражением

    ¬a ∧ b ∧ (c ∨ ¬d)

    Ниже приведен фрагмент таблицы истинности функции F, содержащей все наборы аргументов, при которых функция F истинна.

    Определите, какому столбцу таблицы истинности функции F соответствует каждая из переменных a, b, c, d.

    Перем.1 Перем.2 Перем.3 Перем.4 F
    ??? ??? ??? ??? F
    0 1 0 0 1
    1 1 0 0 1
    1 1 0 1 1

    В ответе запишите буквы в том порядке, в котором идут соответствующие им столбцы.

    ✍ Решение:

    🎦 (Бескомьютерный вариант) Предлагаем подробный разбор посмотреть на видео:

    📹 здесь
    📹 Видеорешение на RuTube здесь


    Задание 2_3: Решение задания 2. Демоверсия ЕГЭ 2018 информатика:

    Логическая функция F задаётся выражением ¬x ∨ y ∨ (¬z ∧ w).
    На рисунке приведён фрагмент таб. ист-ти функции F, содержащий все наборы аргументов, при которых функция F ложна.
    Определите, какому столбцу таблицы истинности функции F соответствует каждая из переменных w, x, y, z.

    Перем. 1 Перем. 2 Перем. 3 Перем. 4 F
    ??? ??? ??? ??? F
    1 0 0 0 0
    1 1 0 0 0
    1 1 1 0 0

    В ответе напишите буквы w, x, y, z в том порядке, в котором идут соответствующие им столбцы (сначала – буква, соответствующая первому столбцу; затем – буква, соответствующая второму столбцу, и т.д.) Буквы в ответе пишите подряд, никаких разделителей между буквами ставить не нужно.

    Подобные задания для тренировки

    ✍ Решение:

      ✎ Логические размышления (бескомпьютерный вариант):

    • Внешним действием (последним выполняемым) в исходном выражении является дизъюнкция:
    • ¬x  y  (¬z ∧ w)
    • Вспомним таб. ист-ти для дизъюнкции (логическое сложение):
    • x1 x2 F
      0 0 0
      0 1 1
      1 0 1
      1 1 1
    • Чтобы исходное выражение было истинным, нужно, чтобы хотя бы один из операндов равнялся единице. Т.е. нельзя наверняка сказать, где будет 1, а где 0 (¬x = 1 или 0, y = 1 или 0, ¬z ∧ w = 1 или 0).
    • Функция же ложна только в одном случае, — когда все операнды ложны. Поэтому будем искать по признаку лжи.
    • В исходной таблице истинности во всех строках функция ложна. Чтобы понять в каком столбце должна находиться та или иная переменная, возьмем за основу строку, в которой только одна единица или только один нуль.
    • Строка №1: в ней одна единица — первый столбец. В исходной формуле, чтобы функция была ложна, необходимо, чтобы ¬x = 0, иными словами x = 1. Значит первый столбец соответствует переменной x.
    • Перем. 1 Перем. 2 Перем. 3 Перем. 4 F
      x ??? ??? ??? F
      1 0 0 0 0
    • Строка №3: в ней один нуль — четвертый столбец. В исходной формуле, чтобы функция была ложна, необходимо, чтобы y = 0. Значит четвертый столбец соответствует переменной y.
    • Перем. 1 Перем. 2 Перем. 3 Перем. 4 F
      x ??? ??? y F
      1 1 1 0 0
    • Строка №2: в ней второй столбец равен единице, а третий — нулю. В исходном выражении ¬z ∧ w должно равняться 0, чтобы функция была ложной. Конъюнкция истинна только тогда, когда оба операнда истинны (=1); в нашем случае функция должна быть ложной, но пойдем от обратного. Если ¬z = 1, т.е. z = 0, а w = 1, то это неверно для нашего случая. Значит всё должно быть наоборот: z = 1, а w = 0. Таким образом столбец второй соответствует z, а столбец третий — w.
    • x z w y F
      1 0 0 0 0
      1 1 0 0 0
      1 1 1 0 0

    Результат: xzwy

    ✎ Способ 2. Программирование:
    Язык pascalABC.NET:

    begin
      writeln('x  ','y  ','z  ','w  ');
      for var x:=false to true do
        for var y:=false to true do
          for var z:=false to true do
            for var w:=false to true do
              if not(not x or y or(not z and w)) then
                writeln(x:7,y:7,z:7,w:7);
    end.

    🎦 (бескомпьютерный вариант) Подробное решение данного 2 задания из демоверсии ЕГЭ 2018 года смотрите на видео:

    📹 здесь
    📹 Видеорешение на RuTube здесь


    Задание 2_13: Разбор досрочного егэ по информатике 2019

    Логическая функция F задаётся выражением

    (x ∧ ¬y) ∨ (y ≡ z) ∨ ¬w
    

    Определите, какому столбцу таблицы истинности функции F соответствует каждая из переменных x, y, z, w.
    В ответе напишите буквы x, y, z, w в том порядке, в котором идут соответствующие им столбцы.

    Перем.1 Перем.2 Перем.3 Перем.4 F
    ??? ??? ??? ??? F
    0 0 0
    0 1 0 1 0
    1 0 0

    ✍ Решение:
     

    🎦 Видеорешение (бескомпьютерный вариант):
    📹 здесь
    📹 Видеорешение на RuTube здесь


    Задания для тренировки

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

    Каждое из логических выражений F и G содержит 5 переменных. В табл. истинности для F и G есть ровно 5 одинаковых строк, причем ровно в 4 из них в столбце значений стоит 1.

    Сколько строк таблицы истинности для F ∨ G содержит 1 в столбце значений?

    Подобные задания для тренировки

    ✍ Решение:

    • Поскольку в каждом из выражений присутствует 5 переменных, то эти 5 переменных порождают таблицу истинности из 32 строк: т.к. каждая из переменных может принимать оно из двух значений (0 или 1), то различных вариантов с пятью переменными будет 25=32, т.е. 32 строки.
    • Из этих 32 строк и для F и для G мы знаем наверняка только о 5 строках: 4 из них истинны (=1), а одна ложна (=0).
    • Вопрос стоит о количестве строк = 1 для таб. истинности F ∨ G. Данная операция — дизъюнкция, которая ложна только в одном случае — если F = 0 и одновременно G = 0
    • В исходных таблицах для F и G мы знаем о существовании только одного 0, т.е. в остальных строках может быть 1. Т.о., и для F и для G в 31 строке могут быть единицы (32-1=31), а лишь в одной — ноль.
    • Тогда для F ∨ G только в одном случае будет 0, когда и F = 0 и G = 0:
    • F G F ∨ G
      1 0 0 0
      2 0 1 1
      1
      32 1
    • Соответственно, истинными будут все остальные строки:
    • 32 - 1 = 31

    Результат: 31

    Подробное объяснение данного задания смотрите на видео:

    📹 здесь


    Задание 2_6: Решение 2 задания ЕГЭ по информатике:

    Каждое логическое выражение A и B зависит от одного и того же набора из 7 переменных. В таблицах истинности каждого из этих выражений в столбце значений стоит ровно по 4 единицы.

    Каково максимально возможное число единиц в столбце значений таблицы истинности выражения A ∨ B?

    ✍ Решение:

    • Полная таблица истинности для каждого из выражений A и B состоит из 27 = 128 строк.
    • В четырех из них результат равен единице, значит в остальных — 0.
    • A ∨ B истинно в том случае, когда либо A = 1 либо B = 1, или и A и B = 1.
    • Поскольку А = 1 только в 4 случаях, то чтобы получить максимальное количество единиц в результирующей таблице истинности (для A ∨ B), расположим все единицы т.и. для выражения A так, чтобы они были в строках, где B = 0, и наоборот, все строки, где B = 1, поставим в строки, где A = 0:
    • A B
      1 0
      1 0
      1 0
      1 0
      0 1
      0 1
      0 1
      0 1
      0 0
    • Итого получаем 8 строк.
    • Если бы в задании требовалось найти минимальное количество единиц, то мы бы совместили строки со значением = 1, и получили бы значение 4.

    Результат: 8


    Задание 2_7: Решение 2 задания ЕГЭ по информатике:

    Каждое логическое выражение A и B зависит от одного и того же набора из 8 переменных. В таблицах истинности каждого из этих выражений в столбце значений стоит ровно по 6 единиц.

    Каково максимально возможное число нулей в столбце значений таблицы истинности выражения A ∧ B?

    ✍ Решение:

    • Полная таблица истинности для каждого из выражений A и B состоит из 28 = 256 строк.
    • В шести из них результат равен единице, значит в остальных — 0.
    • A ∧ B ложно в том случае, когда:
      A ∧ B = 0 если:
      
      1. A = 0, B = 1 
      2. B = 0, A = 1
      3. A = 0 и B = 0
      
    • Во всех случаях там где А=1 может стоять B=0, и тогда результат F = 0. Поскольку нам необходимо найти максимально возможное число нулей, то как раз для всех шести А=1 сопоставим B=0, и наоборот, для всех шести возможных B=1 сопоставим A=0
    • A B F
      1 0 0
      1 0 0
      1 0 0
      1 0 0
      0 1 0
      0 1 0
      0 1 0
      0 1 0
      0 0 0
    • Поскольку строк всего 256, то вполне возможно, что все 256 из них возвратят в результате 0

    Результат: 256


    Задание 2_4: 2 задание:

    Дан фрагмент таблицы истинности выражения F.

    x1 x2 x3 x4 x5 x6 x7 F
    1 0 0 1 1 1 1 0
    0 1 0 0 1 0 1 1
    0 1 0 1 1 0 1 0

    Каким из приведённых ниже выражений может быть F?
    1) ¬x1 ∧ x2 ∧ ¬x3 ∧ ¬x4 ∧ x5 ∧ ¬x6 ∧ x7
    2) x1 ∨ x2 ∨ x3 ∨ ¬x4 ∨ ¬x5 ∨ ¬x6 ∨ ¬x7
    3) x1 ∧ ¬x2 ∧ x3 ∧ ¬x4 ∧ x5 ∧ x6 ∧ ¬x7
    4) x1 ∨ ¬x2 ∨ x3 ∨ x4 ∨ ¬x5 ∨ ¬x6 ∨ x7

    ✍ Решение:

    • В первом внешняя операция (выполняется последней) — конъюнкция. Начнем рассмотрение с нее. Соответственно, проверяем по второй строке таб. ист-ти, там где F = 1, так как в таком случае все аргументы должны быть истинными (см. таб. истинности для конъюнкции).
    • Если мы подставим в нее все аргументы выражения, то функция действительно возвращает истину. Т.е. пункт первый подходит:
    • гвэ 11 класс решение задания 2

    • Но проверим на всякий случай остальные.
    • Второй пункт проверяем по первой и третьей строке, так как основная операция — дизъюнкция — ложна только в том случае, если все аргументы ложны (см. таб. истинности для дизъюнкции). Проверяя по первой строке, сразу видим, что x1 в ней равен 1. В таком случаем функция будет = 1. Т.е. этот пункт не подходит:
    • информатика гвэ, решение 2 задания

    • Третий пункт проверяем по второй строке, так как основная операция — конъюнкция — возвратит истину только тогда, когда все операнды равны 1. Видим, что x1 = 0, соответственно функция будет тоже равна 0. Т.е. выражение нам не подходит:
    • гвэ 11 класс

    • Четвертый пункт проверяем по первой и третьей строкам. В первой — x1 = 1, т.е. функция должна быть равна 1. Т.е. пункт тоже не подходит:
    • разбор 2 задания гвэ

    • Таким образом, ответ равен 1.

    Результат: 1

    Решение 2 задания ГВЭ по информатике смотрите на видео:

    📹 здесь


    Задание 2_8: Решение 2 задания ЕГЭ по информатике:

    Дано логическое выражение, зависящее от 5 логических переменных:

    (¬x1 ∨ ¬x2 ∨ ¬x3 ∨ x4 ∨ x5) ∧ (x1 ∨ x2 ∨ x3 ∨ ¬x4 ∨ ¬x5)

    Сколько существует различных наборов значений переменных, при которых выражение истинно?

    1) 0
    2) 30
    3) 31
    4) 32

    Подобные задания для тренировки

    ✍ Решение:

    • Поскольку выражение включает 5 переменных, то таб. ист-ти состоит из 25 = 32 строк.
    • Внешней операцией (последней) является конъюнкция (логическое умножение), а внутри скобок — дизъюнкция (логическое сложение).
    • Обозначим первую скобку за А, а вторую скобку за B. Получим A ∧ B.
    • Найдем сколько нулей существует для таб. истинности:
    •    A  B  F
      1. 0  0  0
      2. 0  1  0
      3. 1  0  0
      

      Теперь рассмотрим каждый случай отдельно:

    • 1 случай. 0 0 : A = 0 и B = 0, то есть:
    • ¬x1 ∨ ¬x2 ∨ ¬x3 ∨ x4 ∨ x5 = 0
      и
      x1 ∨ x2 ∨ x3 ∨ ¬x4 ∨ ¬x5 = 0.

    • Обратим внимание, что во вторых скобках везде стоит инверсия переменных, которые находятся в первых скобках. Таким образом, это невозможно, так как дизъюнкция равна нулю, когда все операнды равны нулю. А если в первых скобках все 0, то из-за инверсий во вторых скобках все 1. То есть этот случай нам не подходит.
    • 2 случай. 0 1 : нам он подходит, так как если первая скобка возвратит 0, то вторая вернет 1.
    • 3 случай. 1 0 : нам он подходит, так как если вторая скобка возвратит 0, то первая вернет 1.
    • Итого получаем два случая, когда исходное выражение вернет 0, т.е. две строки таблицы истинности.
    • Тогда получим количество строк, с результатом равным 1:
    • 32 - 2 = 30, что соответствует номеру 2
      

    Результат: 2

    Подробное решение задания смотрите в видеоуроке:

    📹 здесь


    Задание 2_5: Решение 2 задания ЕГЭ по информатике:

    Дан фрагмент таблицы истинности для выражения F:

    x1 x2 x3 x4 x5 x6 F
    0 0 1 1 0 0 1
    0 0 0 0 1 1 1
    1 0 1 0 1 1 1
    0 1 1 1 0 1 0

    Укажите максимально возможное число различных строк полной таблицы истинности этого выражения, в которых значение x3 не совпадает с F.

    Подобные задания для тренировки

    ✍ Решение:

    • Полная таблица истинности будет иметь 26 = 64 строк (т.к. 6 переменных).
    • 4 из них нам известны: в них x3 два раза не совпадает с F.
    • Неизвестных строк:
    •  
      64 - 4 = 60
      
    • В неизвестных x3 может не совпадать с F, кроме того, в двух известных x3 не совпадает с F. Соответственно максимально возможное число строк с несовпадающими x3 и F, будет:
    • 60 + 2 = 62
      

    Результат: 62


    Задание 2_9: Решение 2 задания ЕГЭ по информатике:

    Дан фрагмент таблицы истинности для выражения F:

    x1 x2 x3 x4 x5 x6 x7 F
    0 0 0
    0 0 1
    1 1 1

    Каким выражением может быть F?
    1) x1 ∧ (x2 → x3) ∧ ¬x4 ∧ x5 ∧ x6 ∧ ¬x7
    2) x1 ∨ (¬x2 → x3) ∨ ¬x4 ∨ ¬x5 ∨ x6 ∨ ¬x7
    3) ¬x1 ∧ (x2 → ¬x3) ∧ x4 ∧ ¬x5 ∧ x6 ∧ x7
    4) ¬x1 ∨ (x2 → ¬x3) ∨ x4 ∨ x5 ∨ x6 ∧ x7

    ✍ Решение:

    • Рассмотрим отдельно каждый пункт и найдем последнюю операцию, которая должна быть выполнена (внешнюю).
    • 1 пункт:

      (((x1 ∧ (x2 → x3) ∧  ¬x4) ∧ x5) ∧ x6)  ¬x7
      
    • Внешняя операция — конъюнкция. Ее проще проверять по строке, в которой F = 1 (значит все сомножители должны быть равны 1).
    • Возьмем 3-ю строку, в ней x4=1. В нашем выражении х4 с отрицанием, т.е. = 0. Для конъюнкции, когда хоть один из сомножителей равен нулю, выражение вернет в результате 0, а у нас в строке 1. Т.е. этот пункт не подходит:
    • пример решения 2 задания егэ
      2 пункт:

      (((x1 ∨ (¬x2 → x3) ∨  ¬x4) ∨ ¬x5) ∨ x6)   ¬x7
      
    • Последняя выполняющаяся операция (внешняя) — дизъюнкция. Ее легче проверять по строке, в которой F = 0 (значит все слагаемые должны быть равны 0).
    • Смотрим по первой строке: х4 = 0, в рассматриваемом пункте он с отрицанием, т.е. = 1. Соответственно все выражение вернет единицу, а в таблице в строке 0. Т.е. этот пункт не подходит:
    • решение задания 2 егэ
      3 пункт:

      (((¬x1 ∧ (x2 → ¬x3) ∧  x4) ∧ ¬x5) ∧ x6)  x7
      
    • Последняя операция — конъюнкция. Ее проще проверять по строке, в которой F = 1 (значит все сомножители должны быть равны 1).
    • Возьмем 2-ю строку: в ней х7 = 0, в рассматриваем пункте х7 без отрицания, т.е. так и остается равным нулю. При умножении выражение вернет в результате 0. В таблице — 1. Т.е. пункт тоже не подходит:
    • Как решать 2 задание

    • Единственным подходящим вариантом остался пункт под номером 4 (на всякий случай всегда стоит проверить и его).

    Результат: 4

    В видеоуроке рассмотрено подробное решение 2 задания:

    📹 здесь


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

    Логическая функция F задается выражением
    (y → x) ∧ (y → z) ∧ z.

    Определите, какому столбцу таблицы истинности функции F соответствует каждая из переменных x, y, z.

    Перем. 1 Перем. 2 Перем. 3 F
    ??? ??? ??? F
    1 0 0 0 0
    2 0 0 1 0
    3 0 1 0 1
    4 0 1 1 1
    5 1 0 0 0
    6 1 0 1 0
    7 1 1 0 0
    8 1 1 1 1

    В ответе напишите буквы x, y, z в том порядке, в котором идут соответствующие им столбцы.

    ✍ Решение:

    • Сначала необходимо рассмотреть логическую операцию, которую мы будем выполнять в последнюю очередь — это логическое И (конъюнкция) или . То есть внешнюю операцию:
    • (y → x) ∧ (y → z)  z
      
    • Конъюнкцию легче рассматривать по тем строкам таб. ист-ти, в которых F = 1, т.е. №3, №4, и №8
    • Поскольку для конъюнкции функция истинна только тогда, когда все переменные истинны, то необходимо чтобы отдельно каждая скобка была истинна ((y → x) = 1 и (y → z)=1) и переменная z тоже была истинной (=1)
    • (y → x) ∧ (y → z) ∧ z = 1
         если: 
      1. (y → x) = 1
      2. (y → z) = 1
      3. z = 1
      
    • Поскольку с выражениями в скобках сложней работать, определим сначала какому столбцу соответствует z. Для этого выберем строку (№3), где F = 1, а в остальных ячейках только одна единица, остальные — нули.
    • Перем. 1 Перем. 2 Перем. 3 F
      3 0 1 0 1
    • Таким образом, делаем вывод, что z находится во втором столбце (отсчет ведем слева):
    • Перем. 1 Перем. 2 Перем. 3 F
      _ ??? z ??? F
    • Дальше нам необходимо рассмотреть две скобки, в которых находится операция импликации: (y → x) и (y → z). Обе эти скобки должны возвращать истину (=1). В таб. истинности для импликации, функция возвращает в результате 1 тогда, когда:
    • вторая переменная (заключение) равна 1 (первая при этом может быть любой),
    • вторая переменная (заключение) равна 0, а первая обязательно должна быть равна тоже 0.
    • Рассмотрим скобку (y → x) и строку 4 таблицы:
    • Перем. 1 z Перем. 3 F
      4 0 1 1 1
    • Для этой строки только y может быть равен 0, т.к. если x = 0, тогда y=1, и скобка в результате возвратит ложь (1 → 0 = 0). Соответственно, y находится в первом столбце. А x значит должен стоять в третьем:

    Результат: yzx

    Детальный разбор данного задания 2 ЕГЭ по информатике предлагаем посмотреть в видео:

    📹 здесь


    Задание
    16

    1.      Рекурсивные функции с возвращаемыми значениями

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

     F(n) = 0,
    при n ≤ 1;

    F(n) = F(n −
    1) + 3n2, если n > 1 и при этом нечётно;

    F(n) = n / 2
    F(n − 1) + 2, если n > 1 и при
    этом чётно.

    Чему равно
    значение функции F(49)? В ответе запишите только целое число.

    def F(n):

        if n <= 1:

            return 0

        if n % 2 == 1:

            return F(n-1) + 3*n*n

        return n // 2 + F(n-1) + 2

    print(F(49))

    2.      Алгоритмы, опирающиеся на несколько предыдущих
    значений

    Последовательность чисел трибоначчи задается рекуррентным
    соотношением:

    F(1) = 0

    F(2) = 1

    F(3) = 1

    F(n) = F(n–3) + F(n–2) + F(n–1), при n >3, где n – натуральное
    число.

    Чему равно девятое число в последовательности трибоначчи?

    def F(n):

        if n == 1:

            return 1

        if n == 2:

            return 1

        if n > 2:

            return F(n-2) + F(n-1)

    print(F(9))

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

       F(n) = F(n −
    1) + 1, если n нечётно;

                 
    F(n)
     = F(n / 2), если n >
    0 и при этом n чётно.

     Укажите
    количество таких значений n < 1 000 000 000, для которых F(n)  =  3.

    С

    3.      Алгоритмы, опирающиеся на одно предыдущее
    значение

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

    F(1) = 1

    F(n) = F(n–1) * n, при n >1

    Чему равно значение функции F(5)? В ответе запишите только
    натуральное число.

    def F(n):

        if n == 1:

            return 1

        if n > 1:

            return F(n-1) * n

    print(F(5))

    Здравствуйте! Сегодня речь пойдёт о 23 задании из ЕГЭ по информатике 2023.

    Двадцать третье задание является последним заданием из первой части ЕГЭ по информатике 2023.

    Давайте познакомимся с примерными задачами 23 задания из ЕГЭ по информатике 2023.

    Задача (классическая)

    У исполнителя Удвоитель две команды, которым присвоены номера:

    1. прибавить 3,
    2. умножить на 2.

    Первая из них увеличивает число на экране на 3, вторая — удваивает его.

    Программа для Удвоителя — это последовательность команд.

    Сколько есть программ, которые число 1 преобразуют в число 25 ?

    Решение:

    1 способ (самый эффективный, на Python).

    def F(x, y):
        if x == y: return 1
    
        if x > y: return 0
    
        if x < y: return F(x+3, y) + F(x*2, y)
    
    print(F(1, 25))
    

    Число x, это то число, с которым мы работаем. Число y — это куда нужно прийти.

    Если число x достигло пункта назначения, то возвращаем 1. Если оно перескочило y, то возвращаем 0. А если ещё не дошло до y, то продолжаем вычисления с помощью рекурсии.

    Ответ получается равен 9.

    2 Способ (графический, для понимания)

    Начинаем рассматривать задачку с конца. Если число нечётное, то оно может быть получено только с помощью первой команды. Если число чётное, то оно может быть получено с помощью двух команд.

    ЕГЭ по информатике - задание 22 (Исполнитель удвоитель)

    Видим, что количество программ получается 9!

    3 Способ (С помощью таблицы)

    Некоторое число i можно получить только двумя способами: либо c помощью первой команды, либо с помощью второй команды. Тогда количество программ для некоторого числа i будет складываться из двух чисел: количества программ для числа i-3 и количества программ для числа i / 2 (Если i — чётное).

    Числа 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!

    Ответ: 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).

    def F(x, y):
        if x == y: return 1
    
        if x > y or x==24: return 0
    
        if x < y: return F(x+1, y) + F(x*2+1, y)
    
    print(F(1, 25))
    

    Здесь на нельзя получать число 24, поэтому, если x будет равен 24, то мы возвращаем ноль.

    Ответ получается равен 10.

    2 способ (Решение с помощью таблицы).

    Мы не может получать число 24! Значит, единственным способом добраться до числа 25 будет вторая команда.

    Получается, что сначала нужно получить число 12, тогда 2 * 12 + 1 = 25 (2x+1). Это единственный путь!

    Каждое число можем получить только 2 способами (Либо с помощью первой команды, либо с помощью второй команды). Поэтому количество программ для некоторого числа i будет равно сумме количеств команд для числа i-1 и для числа (i — 1) / 2 (Если число нечётное.) Если число i — чётное, то до числа i можно добраться единственным способом (с помощью первой команды).

    Если записать с помощью массива:

    A[i]=A[i-1] — если i — четное.
    A[i]=A[i-1] + A[(i-1)/2] — если i нечетное;

    Числа 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?

    Траектория вычислений программы — это последовательность результатов выполнения всех команд программы. Например, для программы 132 при исходном числе 7 траектория будет состоять из чисел 8, 10, 30.

    Решение:

    1 способ (самый эффективный, на Python).

    def F(x, y):
        if x == y: return 1
    
        if x > y: return 0
    
        if x < y: return F(x+1, y) + F(x*3, y) + F(x+2, y)
    
    print(F(2, 9)*F(9, 11)*F(11, 12))
    

    У нас числа 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

    Учитывая, что от 9 до 11 двумя способами можно добраться, то 25 * 2 = 50 — это и будет ответ.

    Ответ: 50

    Задача ( ЕГЭ по информатике, Москва, 2020)

    У исполнителя есть три команды, которым присвоены номера:

    1. Прибавить 1
    2. Умножить на 3
    3. Прибавить 2

    Первая команда увеличивает число на экране на 1, вторая умножает его на 3, третья увеличивает на 2.

    Сколько существует программ, которые преобразуют исходное число 3 в число 14 и при этом траектория вычислений содержит число 9?

    Траектория вычислений программы — это последовательность результатов выполнения всех команд программы. Например, для программы 132 при исходном числе 7 траектория будет состоять из чисел 8, 10, 30.

    Решение:

    1 способ (самый эффективный, на Python).

    def F(x, y):
        if x == y: return 1
    
        if x > y: return 0
    
        if x < y: return F(x+1, y) + F(x*3, y) + F(x+2, y)
    
    print(F(3, 9)*F(9, 14))
    

    Ответ получается 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. Прибавить 1
    2. Прибавить 3

    Первая команда увеличивает число на экране на 1, вторая увеличивает его на 3. Программа для исполнителя Май17 — это последовательность команд.

    Сколько существует программ, для которых при исходном числе 1 результатом является число 17 и при этом траектория вычислений содержит число 9?

    Траектория вычислений программы — это последовательность результатов выполнения всех команд программы. Например, для программы 12 при исходном числе 7 траектория будет состоять из чисел 8, 11, 12.

    Решение:

    1 способ (самый эффективный, на Python).

    def F(x, y):
        if x == y: return 1
    
        if x > y: return 0
    
        if x < y: return F(x+1, y) + F(x+3, y)
    
    print(F(1, 9)*F(9, 17))
    

    Ответ получается 169.

    2 способ (с помощью таблицы).

    Любое число может получится в результате двух команд! Тогда количество программ для числа i будет складываться из количеств команд для числа i — 1 и для числа i — 3.

    Если написать на языке массива

    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.

    Ответ: 169

    Доброго времени суток каждому жителю Хабрвилля! Давненько я не писал статей! Пора это исправить!

    В сегодняшней статье поговорим о насущной для многих выпускников школ теме — ЕГЭ. Да-да-да! Я знаю, что Хабр — это сообщество разработчиков, а не начинающих айтишников, но сейчас ребятам как никогда нужна поддержка именно сообщества. Ребят опять посадили на дистант. Пока не ясно на какой период, но уже сейчас можно сказать, что ЕГЭ по информатике будет на компьютерах и его можно зарешать при помощи языка Python.

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

    Всех желающих — приглашаю ниже!

    Быстрый перевод из системы в систему

    В Python есть интересные функции bin(), oct() и hex(). Работают данные функции очень просто:

    bin(156) #Выводит '0b10011100'
    oct(156) #Выводит '0o234'
    hex(156) #Выводит '0x9c'

    Вывод в интерпретационном режиме

    Вывод в интерпретационном режиме

    Как вы видите, выводится строка, где 0b — означает, что число далее в двоичной системе счисления, 0o — в восьмеричной, а 0x — в шестнадцатеричной. Но это стандартные системы, а есть и необычные…

    Давайте посмотрим и на них:

    n = int(input()) #Вводим целое число
     
    b = '' #Формируем пустую строку
     
    while n > 0: #Пока число не ноль
        b = str(n % 2) + b #Остатот от деления нужной системы (в нашем сл записываем слева
        n = n // 2 #Целочисленное деление
     
    print(b) #Вывод

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

    n = int(input()) #Вводим целое число
    
    b = '' #Формируем пустую строку
    
    while n > 0: #Пока число не ноль
    	if (n % 21) > 9: #Если остаток от деления больше 9...
    		if n % 21 == 10: #... и равен 10...
    			b = 'A' + b #... запишем слева A
    		elif n % 21 == 11:#... и равен 11...
    			b = 'B' + b#... запишем слева B
    
    '''
    
    И так далее, пока не дойдём до системы счисления -1 (я переводил в 21-ную систему и шёл до 20)
    
    '''
    
    		elif n % 21 == 11:
    			b = 'B' + b
    		elif n % 21 == 12:
    			b = 'C' + b
    		elif n % 21 == 13:
    			b = 'D' + b
    		elif n % 21 == 14:
    			b = 'E' + b
    		elif n % 21 == 15:
    			b = 'F' + b
    		elif n % 21 == 16:
    			b = 'G' + b
    		elif n % 21 == 17:
    			b = 'H' + b
    		elif n % 21 == 18:
    			b = 'I' + b
    		elif n % 21 == 19:
    			b = 'J' + b
    		elif n % 21 == 20:
    			b = 'K' + b
    	else: #Иначе (остаток меньше 10)
    		b = str(n % 21) + b #Остатот от деления записываем слева
    	n = n // 21 #Целочисленное деление
    
    print(b) #Вывод

    Способ объёмен, но понятен. Теперь давайте используем тот же функцию перевода из любой системы счисления в любую:

    def convert_base(num, to_base=10, from_base=10):
        # Перевод в десятичную систему
        if isinstance(num, str): # Если число - строка, то ...
            n = int(num, from_base) # ... переводим его в нужную систему счисления
        else: # Если же ввели число, то ...
            n = int(num) # ... просто воспринять его как число
        # Перевод десятичной в 'to_base' систему
        alphabet = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ" # Берём алфавит
        if n < to_base: # Если число меньше системы счисления в которую переводить...
            return alphabet[n] # ... вернуть значения номера в алфавите (остаток от деления)
        else: # Иначе...
            return convert_base(n // to_base, to_base) + alphabet[n % to_base] # ... рекурсивно обратиться к функии нахождения остатка

    Вызвав функцию вывода print(convert_base(156, 16, 10)) мы переведём 156 из 10 в 16 систему счисления, а введя print(convert_base('23', 21, 4)) переведёт 23 из 4-ичной в 21-ичную систему (ответ: B).

    Задача 2

    Все задания беру из первого октябрьского варианта (он же вариант № 9325894) с сайта Решу.ЕГЭ.

    Решение данной задачи совсем простое: банальный перебор.

    print('y', 'x', 'z', 'F') #Напечатаем заголовки таблицы
    for y in range(2): #Берём все переменные и меняем их в циклах '0' и '1'
    	for x in range(2):
    		for z in range(2):
    			for w in range(2):
    				F = ((not x or y) == (not z or w)) or (x and w) #Записываем функцию
    				print(x, y, z, F) #Выводим результат

    Результат:

    Нам вывелась вся таблица истинности (1 = True, 0 = False). Но это не очень удобно. Обратите внимание, что в задании, функция равно 0, так и давайте подправим код:

    print('y', 'x', 'z', 'F') #Напечатаем заголовки таблицы
    for y in range(2): #Берём все переменные и меняем их в циклах '0' и '1'
    	for x in range(2):
    		for z in range(2):
    			for w in range(2):
    				F = ((not x or y) == (not z or w)) or (x and w) #Записываем функцию
    				if not F:
    					print(x, y, z, F) #Выводим результат

    Результат:

    Далее — простой анализ.

    Задача 5

    Данная задача легко решается простой последовательностью действий в интерпретационном режиме:

    Задача 6

    Перепечатали и получили ответ:

    s = 0
    k = 1
    while s < 66:
        k += 3
        s += k
    print(k)

    Задача 12

    В очередной раз, просто заменим слова на код:

    a = '9' * 1000
    
    while '999' in a or '888' in a:
    	if '888' in a:
    		a = a.replace('888', '9', 1)
    	else:
    		a = a.replace('999', '8', 1)
    print(a)

    Задача 14

    Компьютер железный, он всё посчитает:

    a = 4 ** 2020 + 2 ** 2017 - 15
    k = 0
    
    while a > 0:
        if a % 2 == 1:
        	k += 1
        a = a // 2
    
    print(k)

    Задача 16

    Опять же, просто дублируем программу в python:

    def F(n):
        if n > 0:
            F(n // 4)
            print(n)
            F (n - 1)
    print(F(5))

    Результат:

    Задача 17

    Задача с файлом. Самое сложное — достать данные из файла. Но где наша не пропадала?!

    with open("17.txt", "r") as f: #Открыли файл 17.txt для чтения
        text = f.read() #В переменную text запихнули строку целиком
    a = text.split("n") #Разбили строку энтерами (n - знак перехода на новую строку)
    
    k = 0 #Стандартно обнуляем количество
    m = -20001 #Так как у нас сумма 2-ух чисел и минимальное равно -10000, то минимум по условию равен -20000, поэтому...
    
    for i in range(len(a)): #Обходим все элементы массива
    	if (int(a[i - 1]) % 3 == 0) or (int(a[i]) % 3 == 0): #Условное условие
    		k += 1 #Счётчик
    		if int(a[i - 1]) + int(a[i]) > m: #Нахождение минимума
    			m = int(a[i - 1]) + int(a[i])
    
    print(k, m) #Вывод

    Немного пояснений. Функция with() открывает файл считывает данные при помощи функции read() и закрывает файл. В остальном — задача стандартна.

    Задача 19, 20 и 21

    Все три задачи — задачи на рекурсию. Задачи идентичны, а вопросы разные. Итак, первая задача:

    Пишем рекурсивную функцию и цикл перебора S:

    def f(x, y, p): #Рекурсивная функция
    	if x + y >= 69 or p > 3: #Условия завершения игры
    		return p == 3
    	return f(x + 1, y, p + 1) or f(x, y + 1, p + 1) or
    		   f(x * 2, y, p + 1) or f(x, y * 3, p + 1) #Варианты действий
    
    for s in range (1, 58 + 1): #Перебор S
    	if f(10, s, 1): #Начали с 10 камней
    		print(s)
    		break

    Немного пояснений. В рекурсивной функции существует 3 переменные x — число камней в первой куче, y — число камней во второй куче, p — позиция. Позиция рассчитывается по таблице:

    Игра

    Петя

    Ваня

    Петя

    Ваня

    Петя

    p

    1

    2

    3

    4

    5

    6

    Далее — всё по условию задачи.

    Вторая задача на теорию игр:

    Все отличия в рамке. Ну и код, соответственно, не сильно отличается:

    def f(x, y, p): #Рекурсивная функция
    	if x + y >= 69 or p > 4: #Условия завершения игры
    		return p == 4
    	if p % 2 != 0:
    		return f(x + 1, y, p + 1) or f(x, y + 1, p + 1) or
    			   f(x * 2, y, p + 1) or f(x, y * 3, p + 1) #Варианты действий
    	else:
    		return f(x + 1, y, p + 1) and f(x, y + 1, p + 1) and
    			   f(x * 2, y, p + 1) and f(x, y * 3, p + 1) #Варианты действий
    
    
    for s in range (1, 58 + 1): #Перебор S
    	if f(10, s, 1): #Начали с 10 камней
    		print(s)

    Отличия:

    1. Выиграл Петя, соответственно, позиция 4

    2. Так как Петя не может выиграть за один ход — он выигрывает за 2 хода (and, а не or на нечётных позициях (играх Пети))

    3. Убрали break, так как нам нужны все S, а не единственный

    Последняя вариация задачи:

    Сразу код:

    def f(x, y, p): #Рекурсивная функция
    	if x + y >= 69 or p > 5: #Условия завершения игры
    		return p == 3 or p == 5
    	if p % 2 == 0:
    		return f(x + 1, y, p + 1) or f(x, y + 1, p + 1) or
    			   f(x * 2, y, p + 1) or f(x, y * 3, p + 1) #Варианты действий
    	else:
    		return f(x + 1, y, p + 1) and f(x, y + 1, p + 1) and
    			   f(x * 2, y, p + 1) and f(x, y * 3, p + 1) #Варианты действий
    
    
    for s in range (1, 58 + 1): #Перебор S
    	if f(10, s, 1): #Начали с 10 камней
    		print(s)

    Ну и всего лишь 2 отличия:

    1. Позиции 3 или 5, а не 4, так как выиграл Ваня

    2. На второй ход выигрывает Ваня и нам нужно or и and поменять. Я заменил только кратность 2.

    Задача 22

    Ctrl+C, Ctrl+V — наше всё! :)

    for i in range(1, 100000):
    	x = i
    	L = 0
    	M = 0
    	while x > 0 :
    		L = L+1
    		if (x % 2) != 0:
    			M = M + x % 8
    		x = x // 8
    	if L == 3 and M == 6:
    		print(i)

    Задача 23

    Итак, код:

    def f(x, y):
    	if x > y: #Перегнали цель
    		return 0
    	if x == y:  #Догнали цель
    		return 1
    	if x < y: #Догоняем цель тремя методами
    		return f(x + 1, y) + f(x + 2, y) + f(x * 2, y)
    
    print(f(3, 10) * f(10, 12)) #Прошло через 10, значит догнали 10 и от де догоняем 12

    Так как в условии задачи мы увеличиваем число, но будем числа «догонять». Три метода описаны, ну а пройти через 10 — значит дойти до него и идти от него.

    Собственно, это и есть вся первая часть ЕГЭ по информатике решённая на Python.

    Ссылка на репозиторий со всеми программами:

    Надеюсь, что смог помочь в своей статье выпускникам и готовящимся ;)

    Остался один вопрос — нужен ли разбор второй части ЕГЭ по информатике на Python? Оставлю этот вопрос на ваше голосование.

    Всем удачи!

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

    Делаю разбор второй части?

    Проголосовали 106 пользователей.

    Воздержались 15 пользователей.

    Маркер СМИ

    © 2007 — 2023 Сообщество учителей-предметников «Учительский портал»
    Свидетельство о регистрации СМИ: Эл № ФС77-64383 выдано 31.12.2015 г. Роскомнадзором.
    Территория распространения: Российская Федерация, зарубежные страны.
    Учредитель / главный редактор: Никитенко Е.И.


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

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


    Фотографии предоставлены

    Автор материалов — Лада Борисовна Есакова.

    В компьютере вся информация представлена в двоичной системе счисления, в которой используется две цифры – 0 и 1. Собственно, и цифр как таковых у компьютера нет, а есть электрический сигнал, проходящий по электронным схемам и соединительным проводникам (шинам) компьютера, который может принимать значения “высокий уровень электрического напряжения” (принимаемый нами за 1) и “низкий уровень электрического напряжения” (принимаемый за 0). Для различных действий над этими нулями и единичками нам необходимы специальные операции, которые работают с двоичными переменными.  Такие операции называются логическими операциями.

    Логические операции и их аргументы принимают только два значения: 1 (“истина”) и 0 (“ложь”).

    Таблица истинности выражения определяет его значения при всех возможных комбинациях исходных данных.

    Количество строк в таблице истинности выражения от N переменных равно 2N.

    Основные логические операции:

    1). Логическое умножение (конъюнкция, логическое И). Обозначается:  AND, &, /.

    Таблица истинности:

    A

    А&В

     1

     1

    1

     1

     0

    0

     0

     1

    0

     0

     0

    0

    2). Логическое сложение (дизъюнкция, логическое ИЛИ). Обозначается:  OR, |, /.

    Таблица истинности:

    A

    /

     1

     1

    1

     1

     0

     1

     0

     1

     1

     0

     0

     0

    3). Логическое отрицание (инверсия, логическое НЕ). Обозначается: NOT, ¬,bar{A} .

    Таблица истинности:

    4). Логическое следование (импликация). Обозначается: .

    Таблица истинности:

    A

     1

     1

    1

     1

     0

     0

     0

     1

     1

     0

     0

     1

    5). Логическое равенство (эквивалентность). Обозначается: ↔, ~.

    Таблица истинности:

    A

    ~

     1

     1

    1

     1

     0

     0

     0

     1

    0

     0

     0

     1

    Порядок (приоритет) выполнения логических операций:

    Если в выражении нет скобок, то операции выполняются в следующем порядке:

    —          Логическое отрицание (инверсия, логическое НЕ);

    —          Логическое умножение (конъюнкция, логическое И);

    —          Логическое сложение (дизъюнкция, логическое ИЛИ);

    —          Логическое следование (импликация);

    —          Логическое равенство (эквивалентность).

    Выбор выражения по таблице истинности

    Пример 1.

    Дан фраг­мент таб­ли­цы ис­тин­но­сти вы­ра­же­ния F:

    x1

    x2

    x3

    x4

    x5

    x6

    F

    1

    1

    0

    0

    0

    0

    0

    1

    0

    1

    0

    0

    1

    0

    1

    0

    0

    1

    0

    0

    0

    Каким вы­ра­же­ни­ем может быть F?

    1) (x1 ∧ x2) ∨ (x3 ∧ x4) ∨ (x5 ∧ x6)

    2) (x1 ∧ x3) ∨ (x3 ∧ x5) ∨ (x5 ∧ x1)

    3) (x2 ∧ x4) ∨ (x4 ∧ x6) ∨ (x6 ∧ x2)

    4) (x1 ∧ x4) ∨ (x2 ∧ x5) ∨ (x3 ∧ x6)

    Решение:

    Все пред­став­лен­ные ва­ри­ан­ты от­ве­та — дизъ­юнк­ции трёх конъ­юнк­ций. Все зна­че­ния F в таблице равны нулю. Дизъ­юнк­ция равна нулю, когда все слагаемые равны нулю.

    Рас­смот­ри по­очерёдно все че­ты­ре вы­ра­же­ния.

    1) В пер­вой стро­ке таб­ли­цы x1=1 и x2=1, зна­чит x1∧x2=1. Выражение не подходит.

    2) Во вто­рой стро­ке таб­ли­цы x1=1 и x3=1, зна­чит x1∧x3=1. Выражение не подходит.

    3) Подставим в третье выражение поочередно значения всех строк таблицы:

    Первая строка

    (x2 ∧ x4) ∨ (x4 ∧ x6) ∨ (x6 ∧ x2) = (1 ∧ 0) ∨ (0 ∧ 0) ∨ (0 ∧ 1) = 0 ∨ 0 ∨ 0 = 0

    Вторая строка

    (x2 ∧ x4) ∨ (x4 ∧ x6) ∨ (x6 ∧ x2) = (0 ∧ 0) ∨ (0 ∧ 1) ∨ (1 ∧ 0) = 0 ∨ 0 ∨ 0 = 0

    Третья строка

    (x2 ∧ x4) ∨ (x4 ∧ x6) ∨ (x6 ∧ x2) = (0 ∧ 1) ∨ (1 ∧ 0) ∨ (0 ∧ 0) = 0 ∨ 0 ∨ 0 = 0

    Выражение подходит.

    4) В тре­тьей стро­ке таб­ли­цы x1=1 и x4=1, зна­чит x1∧x4=1. Выражение не подходит.

    Ответ:3

    Пример 2.

    Для таб­ли­цы ис­тин­но­сти функ­ции F из­вест­ны зна­че­ния толь­ко не­ко­то­рых ячеек:

     x1

    x2

    x3

    x4

    x5

    x6

    x7

    F

    1

    0

    1

    0

    0

    1

    0

    1

    0

    Каким вы­ра­же­ни­ем может быть F?

    1) x1 ∧ x2 ∧ x3 ∧ ¬x4 ∧ x5 ∧ x6 ∧ ¬x7

    2) x1 ∨ ¬x2 ∨ x3 ∨ ¬x4 ∨ ¬x5 ∨ x6 ∨ ¬x7

    3) ¬x1 ∧ x2 ∧ ¬x3 ∧ x4 ∧ x5 ∧ x6 ∧ x7

    4) x1 ∨ x2 ∨ ¬ x3 ∨ x4 ∨ x5 ∨ ¬x6 ∨ x7

    Решение:

    Рас­смот­ри по­очерёдно все че­ты­ре вы­ра­же­ния.

    1)      Выражение является конъюнкцией переменных и их отрицаний. Конъюнкция равна единице, когда все операнды равны единице. В первой строке x6 = 0, а значит и все выражение F равно нулю,  что не со­от­вет­ству­ет таб­ли­це ис­тин­но­сти.

    2)      Выражение является дизъюнкцией переменных и их отрицаний. Дизъюнкция равна единице, когда хотя бы один операнд равен единице. Подставим во второе выражение поочередно значения всех строк таблицы:

    Первая строка

    x1 ∨ ¬x2 ∨ x3 ∨ ¬x4 ∨ ¬x5 ∨ x6 ∨ ¬x7 = x1 ∨ ¬x2 ∨ x3 ∨ 0  ∨ ¬x5 ∨ 0 ∨ ¬x7 может принимать значение 1, если хотя бы один из операндов равен 1.

    Вторая строка

    x1 ∨ ¬x2 ∨ x3 ∨ ¬x4 ∨ ¬x5 ∨ x6 ∨ ¬x7 = x1 ∨ ¬x2 ∨ x3 ∨ 1 ∨ ¬x5 ∨ x6 ∨ 1 = 1

    Третья строка

    x1 ∨ ¬x2 ∨ x3 ∨ ¬x4 ∨ ¬x5 ∨ x6 ∨ ¬x7 = 0 ∨ ¬x2 ∨ x3 ∨ 0 ∨ ¬x5 ∨ x6 ∨ ¬x7 может принимать значение 0, если все остальные операнды равны 0.

    3)      Выражение является конъюнкцией переменных и их отрицаний. Конъюнкция равна единице, когда все операнды равны единице. Во второй строке x4 = 0, а значит и все выражение F равно нулю,  что не со­от­вет­ству­ет таб­ли­це ис­тин­но­сти.

    4)     Выражение является дизъюнкцией переменных и их отрицаний. Дизъюнкция равна единице, когда хотя бы один операнд равен единице. В третьей строке x4 = 1, значит и все выражение F равно 1,  что не со­от­вет­ству­ет таб­ли­це ис­тин­но­сти.

    Ответ:2

    Пример 3.

    Логическая функция F задаётся выражением (¬z) ∧ x ∨ x ∧ y. Определите, какому столбцу таблицы истинности функции F соответствует каждая из переменных x, y, z.

    Перем. 1

    Перем. 2

    Перем. 3

    Функция

    ???

    ???

    ???

    F

    0

    0

    0

    0

    0

    0

    1

    1

    0

    1

    0

    0

    0

    1

    1

    1

    1

    0

    0

    0

    1

    0

    1

    0

    1

    1

    0

    0

    1

    1

    1

    1

    В ответе напишите буквы x, y, z в том порядке, в котором идут соответствующие им столбцы (сначала – буква, соответствующая 1-му столбцу; затем – буква, соответствующая 2-му столбцу; затем – буква, соответствующая 3-му столбцу). Буквы в ответе пишите подряд, никаких разделителей между буквами ставить не нужно.

    Решение:

    Выражение (¬z) ∧ x ∨ x ∧ y яв­ля­ет­ся дизъ­юнк­ци­ей двух конъ­юнк­ций:

    ((¬z) ∧ x) (x ∧ y) . В обеих конъюнкциях присутствует x. Т. е. при x = 0 все выражение равно 0. Это выполняется только при Перем.3 = x.

    Выражение равно 1, если x =1 и выполняется хотя бы одно из условий: y = 1 или z = 0. Из четвертой строки следует, что Перем.1 = z, а Перем.2 = y.

    Ответ: zyx

    Спасибо за то, что пользуйтесь нашими публикациями.
    Информация на странице «Задача №2. Построение таблиц истинности логических выражений. Выбор выражения, соответствующего условию.» подготовлена нашими редакторами специально, чтобы помочь вам в освоении предмета и подготовке к ЕГЭ и ОГЭ.
    Чтобы успешно сдать нужные и поступить в высшее учебное заведение или колледж нужно использовать все инструменты: учеба, контрольные, олимпиады, онлайн-лекции, видеоуроки, сборники заданий.
    Также вы можете воспользоваться другими материалами из данного раздела.

    Публикация обновлена:
    08.03.2023

    Понравилась статья? Поделить с друзьями:
  • Шаблоны для егэ по английскому языку письменная часть 2022
  • Шаблоны для говорения английский егэ задание 4
  • Шаблоны для вывода в сочинении
  • Шаблоны для вступления сочинения егэ
  • Шаблоны декабрьское сочинение