Задание 15. Алгебра логики. Преобразование и анализ логических выражений. ЕГЭ 2026 по информатике

За это задание ты можешь получить 1 балл. На решение дается около 3 минут. Уровень сложности: повышенный.
Средний процент выполнения: 48%
Ответом к заданию 15 по информатике может быть цифра (число) или слово.

Алгоритм решения задания 15:

  1. Определи логические переменные и операции в выражении.
  2. Установи порядок выполнения операций (НЕ → И → ИЛИ).
  3. Если нужно, построй таблицу истинности для переменных.
  4. Последовательно вычисли значения подвыражений.
  5. Примени законы логики для упрощения (если требуется).
  6. Определи итоговое значение логического выражения.
  7. Запиши ответ в требуемом формате.

Задачи для практики

Задача 1

Найдите наименьшее целое неотрицательное A, при котором выражение истинно для любых целых положительных x и y:

(59049 ≠ 3x + y) ∨ (A > x) ∧ (A > y)
Решение
1

Приводим выражение к удобному виду

С учётом приоритетов операций:

P = (59049 ≠ 3x + y)
Q = (A > x) ∧ (A > y)

Нужно: P ∨ Q истинно при всех x, y
2

Когда возникает проблема?

Опасный случай — когда:

59049 = 3x + y
и при этом A ≤ x или A ≤ y
3

Максимизируем «опасное» значение

Выразим:

y = 59049 − 3x

Чтобы «сломать» выражение, выгодно сделать одно число как можно больше.
Максимизируем y → берём минимальное x:

x = 1 ⇒ y = 59049 − 3 = 59046
4

Выбираем минимальное A

Для этой пары нужно:

A > 59046

Минимальное целое:

A = 59047
5

Проверка

Для (x, y) = (1, 59046):
P = ложь, но A > y ⇒ Q = истина
⇒ всё выражение истинно

Для остальных пар значения меньше ⇒ тем более выполняется
Ответ: A = 59047.
Ответ: 59047
Показать решение
Бесплатный интенсив

Задача 2

На числовой прямой даны два отрезка: B = [30; 65] и C = [50; 90]. Укажите наименьшую возможную длину такого отрезка A, для которого логическое выражение

¬(x ∈ A) → ((x ∈ B) ≡ (x ∈ C))

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

Решение

Формула ¬(x ∈ A) → ((x ∈ B) ≡ (x ∈ C)) ложна при: x ∉ A и (x ∈ B) ≡ (x ∈ C) = 0.

Эквиваленция ложна, когда x принадлежит ровно одному из отрезков B или C, то есть x ∈ B△C (симметрическая разность):

  • B \ C = [30; 49] — принадлежит B, но не C
  • C \ B = [66; 90] — принадлежит C, но не B

Для тождественной истинности необходимо и достаточно: B△C ⊆ A.

B△C = [30; 49] ∪ [66; 90]. Наименьший отрезок, покрывающий это объединение — [30; 90], его длина = 90 − 30 = 60.

Ответ: 60
Показать решение
Бесплатный интенсив

Задача 3

На числовой прямой даны два отрезка: P = [20; 75] и Q = [45; 110]. Укажите наименьшую возможную длину такого отрезка A, что логическое выражение

(x ∈ P) → (((x ∈ Q) ∧ ¬(x ∈ A)) → ¬(x ∈ P))

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

Решение

Решение:

Формула вида F → G ложна только когда F = 1 и G = 0. Разберём по шагам:

Внешняя импликация ложна при: (x ∈ P) = 1 и ((x ∈ Q) ∧ ¬(x ∈ A)) → ¬(x ∈ P) = 0.

Внутренняя импликация ложна при: (x ∈ Q) = 1 и (x ∉ A) = 1 и (x ∈ P) = 1.

Итого формула ложна при: x ∈ P ∩ Q и x ∉ A.

Для тождественной истинности необходимо и достаточно: P ∩ Q ⊆ A.

P ∩ Q = [45; 75], длина = 75 − 45 = 30.

Минимальный отрезок A, покрывающий P ∩ Q, имеет длину 30 (например, A = [45; 75]).

Ответ: 30
Показать решение
Бесплатный интенсив

Задача 4

Обозначим через ДЕЛ (n, m) утверждение «натуральное число n делится без остатка на натуральное число m». Для какого наименьшего натурального числа A формула

(ДЕЛ(x,15)→¬ДЕЛ(x,35))∨(x+A≥400)

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

Решение

Напишем код для нахождения всех возможных подходящих А:

def DEL(n, m):
    return n % m == 0

for A in range(1, 10000):
    if all((DEL(x,15) <= (not DEL(x,35))) or ((x + A) >= 400) for x in range(1, 5000)):
        print(A)
        break

Первое значение будет наименьшим.

Ответ: 295
Показать решение
Бесплатный интенсив

Задача 5

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

(342876 ≠ 7x + 2y) ∨ (A > x) ∧ (A > y)

истинно (т.е. принимает значение 1) при любых целых положительных x и y?

Решение
def f(x, y, A):
    return (342876 != 7 * x + 2 * y) or ((A > x) and (A > y))

for A in range(500000):
    fl = True
    for x in range(1, 100000):
        y = (342876 - 7 * x) // 2
        if f(x, y, A) == 0:
            fl = False
            break
    if fl:
        print(A)
        break
Ответ: 171432
Показать решение
Бесплатный интенсив

Задача 6

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

(282 475 249 ≠ y + 6·x) ∨ (A > x) ∧ (A > y)

истинно (т.е. принимает значение 1) при любых целых положительных х и у?

Решение

Учтём приоритет операций: ∧ выполняется раньше ∨, поэтому формула читается как:

(282 475 249 ≠ y + 6·x) ∨ ((A > x) ∧ (A > y))

Формула ложна тогда и только тогда, когда оба операнда дизъюнкции равны 0:

  • y + 6·x = 282 475 249
  • (A > x) ∧ (A > y) = 0, то есть A ≤ x или A ≤ y

Для тождественной истинности необходимо, чтобы таких пар (x, y) не существовало. Значит для всех целых положительных решений уравнения y + 6·x = 282 475 249 должно выполняться A > x И A > y.

Заметим, что 282 475 249 = 710.

Из уравнения y = 282 475 249 − 6·x при x ≥ 1, y ≥ 1:

  • x ≥ 1, y ≥ 1 → 1 ≤ x ≤ 47 079 208
  • Максимальное x = 47 079 208 (при y = 1)
  • Максимальное y = 282 475 243 (при x = 1)

Нам нужно A > x и A > y одновременно для всех решений. Самое жёсткое ограничение даёт пара (x=1, y=282 475 243): необходимо A > 282 475 243.

Проверим A = 282 475 244: для всех решений x ≤ 47 079 208 < A ✓ и y ≤ 282 475 243 < A ✓.

Ответ: 282475244
Показать решение
Бесплатный интенсив

Задача 7

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

(876543 ≠ 6x + 7y) ∨ (A > x) ∧ (A > y)

истинно (т.е. принимает значение 1) при любых целых положительных x и y?

Решение
def f(x, y, A):
    return (876543 != 6 * x + 7 * y) or ((A > x) and (A > y))

for A in range(500000):
    fl = True
    for y in range(1, 100000):
        x = (876543 - 7 * y) // 6 
        if f(x, y, A) == 0:
            fl = False
            break
    if fl:
        print(A)
        break
Ответ: 146088
Показать решение
Бесплатный интенсив

Задача 8

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

(98213 ≠ x + 9y) ∨ (A > x) ∧ (A > y)

истинно (т.е. принимает значение 1) при любых целых положительных x и y?

Решение
def f(x, y, A):
    return (98213 != x + 9 * y) or ((A > x) and (A > y))

for A in range(500000):
    fl = True
    for y in range(1, 10000):
        x = 98213 - 9 * y
        if f(x, y, A) == 0:
            fl = False
            break
    if fl:
        print(A)
        break
Ответ: 98205
Показать решение
Бесплатный интенсив

Задача 9

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

(x ∈ {2, 4, 8, 12, 15}) → (¬(x ∈ {3, 6, 8, 15}) ∨ (xA))

истинно (т. е. принимает значение 1) при любом значении переменной x. Определите наименьшее возможное значение произведения элементов множества A.

Решение
a = set()

def f(x):
    return (x in {2, 4, 8, 12, 15}) <= (not(x in {3, 6, 8, 15}) or x in a)

for x in range(1, 1000):
    if f(x) == 0:
        a.add(x)



result = 1
for x in a:
    result *= x

print(result)  

Ответ: 120
Показать решение
Бесплатный интенсив

Задача 10

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

(987654 ≠ 3x + 4y) ∨ (A > x) ∧ (A > y)

истинно (т.е. принимает значение 1) при любых целых положительных x и y?

Решение
def f(x, y, A):
    return (987654 != 3 * x + 4 * y) or ((A > x) and (A > y))

for A in range(500000):
    fl = True
    for y in range(1, 100000):
        x = (987654 - 4 * y) // 3
        if f(x, y, A) == 0:
            fl = False
            break
    if fl:
        print(A)
        break
Ответ: 329215
Показать решение
Бесплатный интенсив

Задача 11

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

(x > A) ∨ (y > A) ∨ (x + 6y < 712)

истинно (т.е. принимает значение 1) при любых целых неотрицательных х и у?

Решение

Формула ложна тогда и только тогда, когда все три дизъюнкта равны 0:

  • x ≤ A
  • y ≤ A
  • x + 6y ≥ 712

Для тождественной истинности такого набора (x, y) существовать не должно. При x ≤ A и y ≤ A максимальное значение x + 6y достигается при x = A, y = A:

x + 6y ≤ A + 6A = 7A

Нужно, чтобы 7A < 712, то есть A < 711.

Наибольшее целое A = 711 − 1 = 1 977 326 742.

Проверка: при A = 711 − 1: 7A = 712 − 7 < 712
При A = 711: x = y = 711 → x + 6y = 7·711 = 712 ≥ 712 → формула ложна ✗

Ответ: 1977326742
Показать решение
Бесплатный интенсив

Задача 12

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

(612087 ≠ 5x + 9y) ∨ (A > x) ∧ (A > y)

истинно (т.е. принимает значение 1) при любых целых положительных x и y?

Решение
def f(x, y, A):
    return (612087 != 5 * x + 9 * y) or ((A > x) and (A > y))

for A in range(500000):
    fl = True
    for y in range(1, 100000):
        x = (612087 - 9 * y) // 5
        if f(x, y, A) == 0:
            fl = False
            break
    if fl:
        print(A)
        break
Ответ: 122413
Показать решение
Бесплатный интенсив

Задача 13

Обозначим через m & n поразрядную конъюнкцию неотрицательных чисел m и n. Так, например, 13 & 11 = 11012 & 10112 = 10012 = 9.

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

x & A ≠ 0 → (x & 14 = 0 → x & 17 ≠ 0)

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

Решение

Мы можем использовать алгоритм для нахождения всех целых A, при которых данное выражение будет истинным для любых неотрицательных целых x и y.


for A in range(1, 101):
    fl = True #А - подходит?
    for x in range(0, 101): 
        F = (x & A != 0) <= ((x & 14 == 0) <= (x & 17 != 0))
        if not F:
            fl = False
            break
    if fl:
        print(A)
    

Запустив данный код, мы находим все возможные целые числа A, которые делают выражение истинным для всех положительных целых x и y.

Последнее из них будет наибольшим.

Ответ: 31
Показать решение
Бесплатный интенсив

Задача 14

Обозначим через ДЕЛ (n, m) утверждение «натуральное число n делится без остатка на натуральное число m». Для какого наименьшего натурального числа A формула

ДЕЛ(x, A) → (ДЕЛ(x, 6) ∨ ДЕЛ(x, 15))

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

Решение

Напишем код для нахождения всех возможных подходящих А:

def DEL(n, m):
    return n % m == 0


for A in range(1, 5000):
    fl = True
    for x in range(1, 5000):
        F = (DEL(x, A)) <= (DEL(x, 6) or DEL(x, 15))
        if not F:
            fl = False
            break
    if fl:
        print(A)
        break

Первое значение будет наименьшим.

Ответ: 6
Показать решение
Бесплатный интенсив

Задача 15

Обозначим через ДЕЛ(n, m) утверждение «натуральное число n делится без остатка на натуральное число m».

Найдите наибольшее натуральное число A, для которого формула

¬(ДЕЛ(120, A) → ¬ДЕЛ(168, A))

истинна.

Решение

Напишем код для нахождения всех возможных подходящих А:

def DEL(n, m):
    return n % m == 0


for A in range(1, 500):
    F = not(DEL(120, A) <= (not(DEL(168, A))))
    if F:
        print(A) 

Последнее значение будет наибольшим.

Ответ: 24
Показать решение
Бесплатный интенсив

Задача 16

На числовой оси даны два отрезка: X = [12; 93] и Y = [54; 150].

Укажите наименьшую возможную длину такого отрезка Z, для которого логическое выражение:

(x ∈ Y) → (¬(x ∈ X) ∧ ¬(x ∈ Z) → ¬(x ∈ Y)) тождественно истинно (то есть принимает значение 1 при любом действительном значении переменной x).

Решение

Упростим выражение, раскрыв все импликации, получим:

¬(x ∈ Y) V (¬(¬(x ∈ X) ∧ ¬(x ∈ Z)) V ¬(x ∈ Y))

Применим закон Де Моргана:

¬(x ∈ Y) V ((x ∈ X) V (x ∈ Z) V ¬(x ∈ Y))

Уберём лишние скобки и применим закон повторения:

¬(x ∈ Y) V (x ∈ X) V (x ∈ Z)

Отрезок X = [12; 93] и отрезок Y = [54; 150] пересекаются в точке 54. Это значит, что для значений x, находящихся в диапазоне от 12 до 93, выражение будет истинным.

Чтобы исключить значения из отрезка Y, которые не попадают в диапазон отрезка X, необходимо, чтобы отрезок Z начинался с точки, которая находится после точки пересечения, то есть с точки 93.

Таким образом, минимальная длина отрезка Z должна составлять:

Z = [93; 150].

Следовательно, наименьшая длина отрезка Z:
L(Z) = 150 - 93 = 57.

Ответ: 57
Показать решение
Бесплатный интенсив

Задача 17

Обозначим через ДЕЛ (n, m) утверждение «натуральное число n делится без остатка на натуральное число m». Для какого наименьшего натурального числа A > 1 формула

¬ДЕЛ(x, A) → (ДЕЛ(x, 3) → ¬ДЕЛ(x, 5))

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

Решение

Напишем код для нахождения всех возможных подходящих А:

def DEL(n, m):
    return n % m == 0


for A in range(2, 5000):
    fl = True
    for x in range(1, 5000):
        F = (not DEL(x, A)) <= ((DEL(x, 3)) <= (not DEL(x, 5)))
        if not F:
            fl = False
            break
    if fl:
        print(A)

Первое значение будет наименьшим.

Ответ: 3
Показать решение
Бесплатный интенсив

Задача 18

Обозначим через ДЕЛ (n, m) утверждение «натуральное число n делится без остатка на натуральное число m». Для какого наименьшего натурального числа A формула

ДЕЛ(x, A) → (¬ДЕЛ(x, 35) ∨ ДЕЛ(x, 49))

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

Решение

Напишем код для нахождения всех возможных подходящих А:

def DEL(n, m):
    return n % m == 0


for A in range(1, 5000):
    fl = True
    for x in range(1, 5000):
        F = (DEL(x, A)) <= (not DEL(x, 35) or DEL(x, 49))
        if not F:
            fl = False
            break
    if fl:
        print(A)
        break

Первое значение будет наименьшим.

Ответ: 49
Показать решение
Бесплатный интенсив

Задача 19

Обозначим через ДЕЛ(n, m) утверждение «натуральное число n делится без остатка на натуральное число m». Для какого наименьшего натурального числа A формула

(ДЕЛ(x, A) → ¬(ДЕЛ(x, 24) → ¬ДЕЛ(x, 74))) ∧ (A > 500)

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

Решение

Напишем код для нахождения всех возможных подходящих А:

def DEL(n, m):
    return n % m == 0


for A in range(1, 5000):
    fl = True
    for x in range(1, 5000):
        F = ((DEL(x, A)) <= (not((DEL(x, 24)) <= (not(DEL(x, 74)))))) and (A > 500)
        if not F:
            fl = False
            break
    if fl:
        print(A) 

Первое значение будет наименьшим.

Ответ: 888
Показать решение
Бесплатный интенсив

Задача 20

Для какого наименьшего целого числа A выражение:

((x − 30 < A) ∧ (15 − y < A)) ∨ (x · (y + 3) > 60)

тождественно истинно, то есть принимает значение 1 при любых целых положительных x и y?

Решение

Мы можем использовать алгоритм для нахождения наименьшего целого числа A, при котором данное выражение будет истинным для любых положительных целых x и y.


for A in range(1, 101):
    fl = True #А - подходит?
    for x in range(1, 101): 
        for y in range(1, 101):
            F = ((x - 30 < A) and (15 - y < A)) or (x * (y+3) >= 60)
            if not F:
                fl = False
                break
        if not fl:
            break
    if fl:
        print(A)
        break
    

Запустив данный код, мы находим наименьшее целое число A, которое делает выражение истинным для всех положительных целых x и y.

Ответ: 15
Показать решение
Бесплатный интенсив
Показать еще
  • Без воды
  • Ламповая атмосфера
  • Крутые преподаватели

ЕГЭ 2027: бесплатный курс
по информатике

На бесплатном демо-курсе ты:
  • 🔥 Изучишь одни из самых фундаментальных тем информатики
  • 🔥 Научишься решать 6 задач формата ЕГЭ руками
  • 🔥 Начнёшь свой путь в проге
  • 🔥 Учёба на Турбо: познакомишься с преподавателями и личным кабинетом

Что тебя ждет?

  • 8 вебинаров (1 веб в неделю по 1 часу)
  • Тестовые Д/З после каждого занятия
  • Конспекты и скрипты к урокам
  • Доступ к личному кабинету
  • Возможность отрабатывать задания ЕГЭ в любое время
  • Чат с единомышленниками
  • Поддержка препа 24/7
Получи бесплатный демо-доступ
Оставь заявку и займи место
на бесплатном курсе Турбо ЕГЭ
Нажимая на кнопку «Отправить», вы принимаете положение об обработке персональных данных.