. Решение 15 задания ЕГЭ по информатике про основные законы Алгебры Логики
Решение 15 задания ЕГЭ по информатике про основные законы Алгебры Логики

Решение 15 задания ЕГЭ по информатике про основные законы Алгебры Логики

15-е задание: «Основные законы алгебры логики» Уровень сложности — повышенный, Требуется использование специализированного программного обеспечения — нет, Максимальный балл — 1, Примерное время выполнения — 5 минут.

Проверяемые элементы содержания: Знание основных понятий и законов математической логики

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

Элементы математической логики
    Для решения 15 задания, потребуется знание таблиц истинности.

Для выполнения задания рекомендуется повторить следующие темы:

  1. выражения в скобках,
  2. операции «НЕ»,
  3. операции «И»,
  4. операции «ИЛИ»,
  5. операции «импликация»
  6. операции «эквиваленция»
Математическая логика и теория множеств
  • пересечение множеств соответствует логическому умножению, а объединение – логическому сложению;
  • пересечением двух множеств называется новое множество, состоящее из элементов, принадлежащих одновременно обеим множествам:

Пример:

Пример разности множеств:

Для большей определенности стоит рассмотреть тему круги Эйлера

Задания с отрезками и ДЕЛ

Для решения заданий необходимо знать рассмотренную тему о множествах.

Для упрощения решений можно пользоваться следующими законами.

1. Если в задании формула тождественно истинна (равна 1), и 2. после упрощения A без отрицания то используется закон:

где B — известная часть выражения.

1. Если в задании формула тождественно истинна (равна 1), и 2. после упрощения A с отрицанием то используется закон:

где B — известная часть выражения.

1. Если в задании формула тождественно ложна (равна 0), и 2. после упрощения A без отрицания то используется закон:

где B — известная часть выражения.

1. Если в задании формула тождественно ложна (равна 0), и 2. после упрощения A с отрицанием то используется закон:

Задания с поразрядной конъюнкцией

В задании 15 ЕГЭ встречаются задачи, связанные с поразрядной конъюнкцией. Например:

означает поразрядную конъюнкцию (логическое «И») между двоичными значениями двух чисел — 5 и 26. Выполняется так:

Задания, связанные с поразрядной конъюнкцией, решаются несколькими способами. Рассмотрим один из них.

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

  • На деле, это означает, что если имеем:
  • то сначала введем замену:
  • а затем, используя свойство 3, определим истинность высказывания Z29 → Z5:
  • таким образом, получили:
  • Так, например, если в задании имеем:
  • то сначала введем замену и, используя свойство 4, получим:

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

Плейлист видеоразборов задания на YouTube:

Задания с множествами

Элементами множества А являются натуральные числа. Известно, что выражение

истинно (т. е. принимает значение 1) при любом значении переменной х .

Определите наименьшее возможное значение суммы элементов множества A .

  • Введем обозначения:
  • Выполним преобразования:
  • Разделим выражение на две части — известную часть и неизвестную. Чтобы неизвестная часть ( А ) была непременно истинной, необходимо, чтобы известная часть была ложна:
  • То есть получаем:
  • Таким образом имеем пересечение (умножение) двух множеств Q и P . То есть необходимо выбрать элементы, которые встречаются в обоих множествах одновременно:
  • Сумма элементов:

Ответ: 12

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

Элементами множества А являются натуральные числа. Известно, что выражение

истинно (т. е. принимает значение 1) при любом значении переменной х .

Определите наименьшее возможное значение суммы элементов множества A .

  • Введем обозначения:
  • Выполним преобразования:
  • Разделим выражение на две части — известную часть и неизвестную. Чтобы неизвестная часть ( А ) была непременно истинной, необходимо, чтобы известная часть была ложна:
  • То есть получаем:
  • Таким образом имеем пересечение (умножение) двух множеств Q и P . То есть необходимо выбрать элементы, которые встречаются в обоих множествах одновременно:
  • Сумма элементов:

Ответ: 18

Элементами множеств А , P , Q являются натуральные числа, причём P = , Q = . Известно, что выражение

истинно (т. е. принимает значение 1) при любом значении переменной х .

Определите наибольшее возможное количество элементов в множестве A .

  • Введем обозначения:
  • Выполним преобразования:
  • Разделим выражение на две части — известную часть и неизвестную. Чтобы неизвестная часть ( А ) была непременно истинной, необходимо, чтобы известная часть была ложна:
  • То есть получаем:
  • Таким образом имеем разность двух множеств Q и P . То есть это новое множество, элементы которого принадлежат P , но не принадлежат Q :
  • Количество элементов = 7

Ответ: 7

Элементами множества А являются натуральные числа. Известно, что выражение

истинно (т. е. принимает значение 1) при любом значении переменной х .

Определите наименьшее возможное количество элементов множества A.

  • Введем обозначения:
  • Выполним преобразования:
  • Разделим выражение на две части — известную часть и неизвестную. Чтобы неизвестная часть ( А ) была непременно истинной, необходимо, чтобы известная часть была ложна:
  • То есть получаем:
  • Таким образом имеем пересечение двух множеств Q и P :
  • Количество элементов = 1

Ответ: 1

Задания с отрезками на числовой прямой

Отрезки на числовой прямой:

На числовой прямой даны два отрезка: P=[44,48] и Q=[23,35].

Укажите наибольшую возможную длину отрезка А, для которого формула

тождественно ложна, то есть принимает значение 0 при любом значении переменной x.

✍ Решение:

  • Упростим формулу, избавившись от ‘x ϵ‘:
  • Теперь преобразуем импликацию в скобках:

Результат: 4 ✎ Решение 2 (программирование): Внимание! этот способ подходит НЕ для всех заданий с отрезками! Python:

def f(a1,a2,x): return((44<=x<=48)<=(23<=x<=35))and(a1<=x<=a2) maxim = 0 for a1 in range (1,200): for a2 in range (a1+1,200): if all(f(a1,a2,x)==0 for x in range (1,200)):# если все ложны if a2-a1>maxim: maxim=a2-a1 print(a1,a2, a2-a1) # сами точки отрезка и длина

PascalABC.net:

С подробным аналитическим решением задания 15 ЕГЭ по информатике можно ознакомиться по видео:

📹 Видеорешение на RuTube здесь Отрезки на числовой прямой:

На числовой прямой даны два отрезка: P = [10,20] и Q = [30,40].

Укажите наибольшую возможную длину отрезка A, для которого формула

тождественно истинна, то есть принимает значение 1 при любом значении переменной x.

✍ Решение:

  • Упростим выражение, введя обозначения:
  • Запишем формулу с новыми обозначениями, учитывая, что по условию она должна быть тождественно истинной:
  • Избавимся от импликации:
  • Используем закон Де Моргана для последующего преобразования:
  • А — наше неизвестное, а выделенную часть формулы можно найти. Необходимо, чтобы А = 1. Значит, предположим, что ¬А = 0, тогда P ∧ ¬Q = 1 (если P ∧ ¬Q = 0, то ¬А может равняться и 0 и 1, так как имеет место операция логического сложения ∨)
  • Значит, имеем P ∧ ¬Q = 1. Кроме того, в данном случае имеет место операция конъюнкция, которую проще вычислить, если выражение равно 1 (так как для конъюнкции существует один единственный случай истинности: 1 & 1 = 1). Таким образом имеем утверждения:
  • Т.е. A истинно (=1) на промежутке пересечения отрезков P и ¬Q.
  • Отобразим отрезки на числовой прямой, чтобы найти искомое значение:

Результат: 10

Отрезки на числовой прямой:

На числовой прямой даны два отрезка: P = [3, 20] и Q = [6, 12].

Укажите наибольшую возможную длину отрезка A, для которого формула

тождественно истинна, то есть принимает значение 1 при любом значении переменной x.

✍ Решение:

  • Упростим выражение, введя обозначения:
  • Запишем формулу с новыми обозначениями, учитывая, что по условию она должна быть тождественно истинной:
  • Избавимся от импликации:

Далее возможно 2 способа решения.

✎ 2 способ: После того, как мы избавились от импликации, имеем:

Результат: 8

С решением задания 15 вы также можете ознакомиться, посмотрев видео (аналитическое решение):

📹 Видеорешение на RuTube здесь Отрезки на числовой прямой:

На числовой прямой даны два отрезка: P = [11, 21] и Q = [15, 40].

Укажите наибольшую возможную длину отрезка A, для которого формула

тождественно истинна, то есть принимает значение 1 при любом значении переменной x.

✍ Решение:

  • Упростим выражение, введя обозначения:
  • Запишем формулу с новыми обозначениями, учитывая, что по условию она должна быть тождественно истинной:
  • Избавимся от импликации:
  • А — наше неизвестное, тогда как выделенную часть формулы можно найти. Введем предположение, что А = 1. Значит, ¬А = 0 (т.е. А = 1), тогда ¬(P

Результат: 19

Задания с ДЕЛ Поиск наибольшего А, известная часть Дел ∨ Дел = 1

Для какого наибольшего натурального числа А формула

тождественно истинна (то есть принимает значение 1 при любом натуральном значении переменной х)?

✍ Решение:

  • Введем обозначения:
  • Перепишем исходную формулу, согласно введенным обозначениям. Укажем, что формула должна быть тождественно истинна (по условию):
  • Избавимся от импликации:
  • Разделим данную формулу на две части: в одной из них — искомое A, а в другой — часть формулы с x, которую можно найти:
  • В полученной формуле необходимо, чтобы искомая часть с A в конечном счете было истинно.

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

Решение с помощью логических рассуждений:

Решение с помощью кругов Эйлера:

Результат: 8

✎ Решение 2 (программирование): Python:

for A in range(1,500): OK = 1 for x in range(1,1000): OK *= ((x % 40 == 0) or (x % 64 == 0))<=(x % A== 0) if OK: print( A )

PascalABC.net:

begin for var A := 1 to 500 do begin var ok := 1; for var x := 1 to 1000 do begin if (((x mod 40 = 0) or (x mod 64 = 0)) <= (x mod A = 0)) = false then begin ok := 0; break; end; end; if (ok = 1) then print(A) end; end.

Результат: 8

Поиск наименьшего А, известная часть Дел ∧ ¬Дел = 1

Для какого наименьшего натурального числа А формула

тождественно истинна (то есть принимает значение 1 при любом натуральном значении переменной х)?

✍ Решение:

Избавимся от импликации:

✎ Решение 2 (программирование). Язык Python, Pascal:

    Из общего выражения:

for A in range(1,50): OK = 1 for x in range(1,1000): OK *= (x % A == 0) <= ((x % 28 != 0) or (x % 42== 0)) if OK: print( A ) break

begin for var A := 1 to 50 do begin var ok := 1; for var x := 1 to 1000 do begin if (x mod A = 0) <= ((x mod 28 <> 0)or (x mod 42 = 0)) = false then begin ok := 0; break; end; end; if (ok = 1) then begin print(A); break; end end; end.

Результат: 3

Для какого наименьшего натурального числа А формула

тождественно истинна (то есть принимает значение 1 при любом натуральном значении переменной х)?

✍ Решение:

  • Введем обозначения:
  • Перепишем исходную формулу, согласно введенным обозначениям. Укажем, что формула должна быть тождественно истинна (по условию):
  • Избавимся от импликации:
  • Разделим данную формулу на две части: в одной из них - искомое A, а в другой - часть формулы с x, которую можно найти:

✎ Решение 2 (программирование). Язык Python:

    Из общего выражения:

for A in range(1,500): OK = 1 for x in range(1,1000): OK *= ((x % 19 != 0) or (x % 15 != 0))<= (x % A!= 0) if OK: print( A )

Результат: 285

Задания с поразрядной конъюнкцией

Для какого наименьшего неотрицательного целого числа A формула

тождественно ложна (то есть принимает значение 0 при любом неотрицательном значении переменной X)?

✍ Решение:

  • Удалим из формулы X&, чтобы сократить ее запись:
  • Обратим внимание, что внешней операцией является конъюнкция - логическое умножение:
  • Разделим общее выражение на две части относительно внешней операции. Первая часть - неизвестная, искомая, а вторая - известная, ее можно вычислить:
  • Выполним некоторые преобразования во второй части формулы:
  • Зная свойство импликации, преобразуем формулу (избавимся от импликации в скобках):

Ответ: 3

    Используем метод А.В. Здвижковой.

  1. Произвести замену (x & K = 0) на Zk
  2. Выполнить преобразования по свойству импликации и закону Де Моргана.
  3. Стремиться прийти к выражению с конъюнкциями без отрицаний типа: Zk * Zm .
  4. Все выражения типа Zk * Zm преобразовать по свойству Zk * Zm = Zk or m .
  5. Путем преобразований прийти к импликации: Zk → Zm .

Условие Zk → Zm истинно для любых натуральных значений x тогда и только тогда, когда все единичные биты двоичной записи числа M входят во множество единичных битов двоичной записи числа K.

Результат: 3

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

Вариант решения №1 (универсальный, теоретический):

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

Вариант решения №2 (не универсальный, но простой):

Для какого наибольшего неотрицательного целого числа A формула

тождественно истинна (то есть принимает значение 1 при любом неотрицательном значении переменной X)?

✍ Решение:

Результат: 38

Подробное решение данного задания 15 ЕГЭ по информатике предлагаем посмотреть в видео уроке: Способ 1:

📹 Видеорешение на RuTube здесь Способ 2:

📹 Видеорешение на RuTube здесь Поразрядная конъюнкция:

Определите наименьшее натуральное число А из интервала [43, 55], такое, что выражение

тождественно ложно (то есть принимает значение 0 при любом натуральном значении переменной х)?

✍ Решение:

    Кратко изложенное решение *:

Результат: 48

Определите набольшее натуральное число A, такое что выражение

тождественно истинно (то есть принимает значение 1 при любом натуральном значении переменной х)?

✍ Решение:

  • Для упрощения восприятия введем обозначения:
  • Таким образом, получим следующее выражение:
  • Упростим выражение по свойству импликации для второй скобки:
  • Упростим левую часть, используя свойство 2 ( Zk + Zm = Zk and m ):
  • То есть получили z26 ∨ z13 = z8
  • По правилу импликации: все единичные биты двоичной записи результата (z78 ∨ A) должны входить во множество единичных битов двоичной записи z8.
  • Рассмотрим:
  • Для А единичными битами должны быть общие единичные биты для z8 (10002). Т.е. в нашим случае - это один бит - 3-й:

Результат: 8

Задания на поиск наибольшего или наименьшего числа А

Поиск наибольшего или наименьшего числа А:

Для какого наибольшего целого числа А формула тождественно истинна, то есть принимает значение 1 при любых целых неотрицательных x и y?

begin for var A := 200 downto -100 do begin var OK := 1; for var x := 0 to 100 do for var y := 0 to 100 do if ((x <= 9) <= (x * x <= A)) and ((y * y <= A) <= (y <= 9)) = false then begin OK := 0; break; end; if OK = 1 then begin print(A); break end; end; end.

for A in range(200,-100,-1): OK = 1 for x in range(0,100): for y in range(0,100): OK *= ((x<=9) <= (x*x<=A)) and((y*y<=A) <= (y<=9)) if OK: print(A) break

✎ Способ 2 (теоретическое решение):

    Условно разделим исходное выражение на части:

(импликация 0 → 0 = 1)

Результат: 99

Подробное решение 15 (18) задания демоверсии ЕГЭ 2018 года смотрите на видео (аналитическое решение):

📹 Видеорешение на RuTube здесь Поиск наибольшего или наименьшего числа А:

Укажите наименьшее значение А, при котором выражение

истинно для любых целых положительных значений x и y.

✍ Решение:

begin for var A := -100 to 200 do begin var OK := 1; for var x := 1 to 100 do for var y := 1 to 100 do if ((y+3*x<A) or (x >20)or(y>40)) = false then begin OK := 0; break; end; if OK = 1 then begin print(A); break end; end; end.

for A in range(-100,200): OK = 1 for x in range(1,100): for y in range(1,100): OK *= (y+3*x<A) or (x > 20) or (y > 40) if OK: print(A) break

✎ Способ 2 (теоретическое решение):

  • Определим основные части выражения, выделив отдельно неизвестную часть - с А, и, так сказать, известную часть, то есть остальную.
  • Поскольку основными операциями являются операции дизъюнкции (логического сложения) и порядок их выполнения не важен, то последней, внешней, операцией будем выполнять дизъюнкцию слева, т.к. она объединяет неизвестную и известную часть.
  • Сначала важно рассмотреть вторую часть выражения, известную, так как от нее будет зависеть значение A. Если вторая часть истинна, то А может быть как = 1, так и = 0. Такой вариант нам не подходит:
  • Соответственно, рассмотрим вариант, когда вторая часть ложна, тогда часть выражения с неизвестным А будет обязательно истинной, т.е.:
  • Дизъюнкция ложна, когда оба операнда ложны, т.е. из второго пункта имеем:
  • Для того, чтобы перекрыть все x и все y, возьмем наибольшие из возможных значений: x = 20, y = 40.
  • Выразим А:
  • Поскольку требуется найти наименьшее значение А, то имеем А = 101 .

Результат: 101

Подробное решение досрочного ЕГЭ 2018 года смотрите на видео (аналитическое решение):

📹 Видеорешение на RuTube здесь Поиск наибольшего или наименьшего числа А:

Для какого наибольшего целого неотрицательного числа А выражение

✎ Решение 2 (программное): Python:

for A in range(200,0,-1): OK = 1 for x in range(0,100): for y in range(0,100): OK *= (48!=y+2*x) or(A<x)or (A<y) if OK: print(A) break

Результат: 15

Видео решения 15 (18) задания демоверсии ЕГЭ 2019 (аналитическое решение):

📹 Видеорешение на RuTube здесь Поиск наибольшего или наименьшего числа А:

Для какого наименьшего целого числа А формула

✎ Решение 2 (программное): Python:

for A in range(-100,100): OK = 1 for x in range(0,100): for y in range(0,100): OK *= (y+5*x<=34)<=((y-x >4)or(y<=A)) if OK: print( A ) break

begin for var A := -100 to 100 do begin var OK := true; for var x := 0 to 100 do begin for var y := 0 to 100 do begin OK := (y + 5 * x <= 34) <= ((y - x > 4) or (y <= A)); if OK = false then break; end; if OK = false then break; end; if OK then begin print(A); break; end; end; end.

Результат: 9

Поиск наибольшего или наименьшего числа А:

Укажите наименьшее целое значение А при котором выражение

(2y + 5x 100) ∨ (3x – 2y > 70)

истинно для любых целых положительных значений x и y.

for A in range(-200,200): OK = 1 for x in range(1,100): for y in range(1,100): OK *= (2*y + 5*x < A) or (2*x + 4*y > 100) or (3*x - 2*y > 70) if OK: print( A ) break

begin for var A := -200 to 200 do begin var OK := true; for var x := 1 to 100 do begin for var y := 1 to 100 do begin OK := (2*y + 5*x < A) or (2*x + 4*y > 100) or (3*x - 2*y > 70); if OK = false then break; end; if OK = false then break; end; if OK then begin print(A); break; end; end; end.

Результат: 171

Видео разбора задания смотрите на видео (аналитическое решение):

📹 Видеорешение на RuTube здесь Поиск наибольшего или наименьшего числа А:

Укажите наибольшее целое значение А при котором выражение

(3y – x > A) ∨ (2x + 3y ✎ Решение 1 (теоретическое):

for A in range(200,-200,-1): OK = 1 for x in range(1,100): for y in range(1,100): OK *= (3*y-x>A) or (2*x+3*y<30) or (2*y-x<-31) if OK: print(A) break

Результат: -31

Смотрите решение подобного задания № 296 (К. Поляков):

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

Рубрики:

Спасибо. Все понятно!

Светлана Noname

Почему в первой задаче длина отрезка 4,если в отрезок входят: 44,45,46,47,48. Т.е. пять цифр.

Игорь

я думал, что я один такой умный. Замечание правильное. Ответ = 5 . Потому что в задании сказано промежуток, а не отрезок. Крылов с Чуркиной тоже ошиблись 😉 Промежуток (математика) Промежуток, или более точно, промежуток числовой прямой — множество вещественных чисел, обладающее тем свойством, что вместе с любыми двумя числами содержит любое, лежащее между ними. В задаче имеется в виду конечно же промежуток не вещественных, а целых чисел.

admin

Спасибо) значит, исправим само задание: вместо «промежуток» укажем «отрезок»

Аноним

18_10 видео не соответствует задаче.

Аноним Галина

26 в 10-ой =11010 в 2-ой А в целом большое спасибо!

admin Аноним

Последняя задача (18_14.) не соответствует задаче в прикреплённом видеоролике, но ответ указан от задания в видео. Можно узнать правильный ответ?

admin

Там написано, что в видео объясняется подобное задание № 296 К. Полякова

Алекс

Простите, я не понимаю… В примере 130&x=3. 130=10000010. Побитовая конъюнкция с каким числом даст 3. 10000010 & xxxxxxxx =00000011 Поразрядная конъюнкция с последним 0 всегда даст 0, то есть такого числа не существует. Или я чего-то не понимаю.

admin

каждый бит одного числа умножить на соответствующий ему бит другого числа — это поразрядная конъюнкция

Полина

Добрый день! Разбираю теорию, исследую первое свойство поразрядной конъюкции. В нем Z(k) * Z(n) = Z(k or n), и здесь необходимо применять поразрядую дизъюнкцию. Обнаружила ошибку: 26 и 5 дадут 31, но в разобранном примере ответ равен 29. А все дело в том, что неверно представлено число 26 в 2 СС. Оно равно не 11000, а 11010. Прошу исправить ошибку, иначе школьники совсем запутаются! Спасибо)

admin

Спасибо большое! исправлено)

Виталий

В связи со свойством 4 у вас пара ошибок: 1) У вас написано, что свойство верно для выражения x & 125 = 5, а применяете вы его к выражению X & 130 = 3, для которого неизвестно ещё ничего о его верности. 2) В первом же шаге, у вас «замена» X & 130 = 3 на Z_130 = 3, но проведя обратную замену по определению над свойством 1, получим 3 = Z_130 = ( x & 130 = 1) — тождественно ложное утверждение в множестве натуральных чисел, т.к. 1 не равно 3 в множестве целых.

И вообще, всем было бы проще и понятнее, если бы вы по-разному обозначали операции в булевой алгебре множеств (\cap, \cup), в кольце целых чисел (+, \times) и логические операции (логическое «или», логическое «и»). Вообще круто было бы ещё и нейтральные элементы обозначать по-разному, хотя бы для булевой алгебры множеств и всего остального.