К содержанию

Задание 15

Законы математической логики

Как найти A, при котором формула истинна при любом x: отрезки и множества, точки на плоскости, делимость и биты — вручную и программой.

6 подтем · 40 задач + 5 дополнительных · повышенный · ≈ 3 мин

Подтема 1 из 6

Формула с параметром A

Что спрашивают в задании 15, как вычислить формулу при конкретном x и как найти A — вручную и программой.

Как устроена тема

В задании 15 дана логическая формула с неизвестным числом A. Нужно найти A, при котором формула истинна при любом x. Вот задача, которую мы будем решать всю тему:

«Обозначим через ДЕЛ(n, m) утверждение «натуральное число n делится без остатка на натуральное число m». Для какого наибольшего натурального числа A формула ДЕЛ(x, A) ∨ ((x ∈ [50; 70]) → ¬ДЕЛ(x, 15)) тождественно истинна (то есть принимает значение 1 при любом натуральном значении переменной x)?»

Перебирать все x вручную не нужно: почти при любом x формула истинна и без A. Достаточно найти те немногие x, при которых всё решает A. Сначала разберём, что сказано в условии:

В условииЧто это значит
ДЕЛ(x, A)x делится на A без остатка
x ∈ [50; 70]x лежит на отрезке от 50 до 70, концы тоже входят
¬, ∨, →логические НЕ, ИЛИ и «если …, то» — разберём ниже
тождественно истиннаистинна при каждом натуральном x: 1, 2, 3, …
наибольшее натуральное Aиз всех подходящих A — самое большое

Тема состоит из шести подтем — у каждой своя страница. Идём по ним по порядку:

  1. Формула с параметром A — ты сейчас здесь. Здесь же решим задачу темы: ответ 60.
  2. Отрезки и множества — A не число, а отрезок или набор чисел.
  3. Координатная плоскость — две переменные x и y; самый частый вид задачи.
  4. Делимость — ДЕЛ и общие кратные, как в задаче темы.
  5. Поразрядная конъюнкция — операция & над двоичными записями.
  6. Треугольник, MAX и условия с A — дополнительный урок для редких задач.

Почти любую задачу можно решить и вручную, и программой. На экзамене подойдёт любой способ, а второй пригодится для проверки.

Логические операции

Как узнать, истинна ли формула при конкретном x?

При конкретном x каждое условие либо истинно, либо ложно. Истину записывают 1, ложь — 0, а логические операции соединяют эти 0 и 1 в значение всей формулы. Возьмём x = 55: условие x ∈ [50; 70] истинно — 1, а ДЕЛ(55, 15) ложно — 0, ведь 55 на 15 не делится.

ЗаписьИстинна, когдаПри x = 55
¬p — «не p»p ложно¬ДЕЛ(x, 15) = ¬0 = 1
p ∧ q — «p и q»истинны обе части(x ∈ [50; 70]) ∧ ДЕЛ(x, 15) = 1 ∧ 0 = 0
p ∨ q — «p или q»истинна хотя бы одна часть(x ∈ [50; 70]) ∨ ДЕЛ(x, 15) = 1 ∨ 0 = 1
p → q — «если p, то q»всегда, кроме случая 1 → 0(x ∈ [50; 70]) → ДЕЛ(x, 15) = 1 → 0 = 0
p ≡ q — «p равносильно q»значения частей одинаковы(x ∈ [50; 70]) ≡ ДЕЛ(x, 15) = 1 ≡ 0 = 0

С ¬, ∧ и ∨ всё как в обычной речи. На стрелке → ошибаются чаще всего — разберём её отдельно.

Тонкости:порядок действий

Без скобок сначала выполняют ¬, затем ∧, затем ∨, и только потом → и ≡. Скобки меняют порядок, как в арифметике. В условиях ЕГЭ скобки обычно расставлены полностью — следуй им.

Импликация

Когда ложна формула «если p, то q»?

Импликация p → q ложна только в одном случае: p истинно, а q ложно. Во всех остальных случаях она истинна. Это как обещание «если сдашь экзамен, получишь подарок». Оно нарушено, только если экзамен сдан, а подарка нет. Если экзамен не сдан, обещание не нарушено — будет подарок или нет.

pqp → q
001
011
100 — единственная ложь
111

Отсюда удобная замена: p → q — то же самое, что ¬p ∨ q. Обе формулы ложны только при p = 1 и q = 0. Заменим так стрелку в задаче темы:

(x ∈ [50; 70]) → ¬ДЕЛ(x, 15) = ¬(x ∈ [50; 70]) ∨ ¬ДЕЛ(x, 15).

Теперь вся формула задачи — три части, соединённые через ИЛИ: ДЕЛ(x, A) ∨ ¬(x ∈ [50; 70]) ∨ ¬ДЕЛ(x, 15).

Тонкости:отрицание скобки

Отрицание скобки меняет ∧ на ∨ и наоборот — это законы де Моргана: ¬(p ∧ q) = ¬p ∨ ¬q и ¬(p ∨ q) = ¬p ∧ ¬q. Например, «неверно, что x на отрезке и делится на 15» — это «x вне отрезка или не делится на 15». А два отрицания подряд снимают друг друга: ¬¬p = p.

Когда всё решает A

Как найти A, не проверяя все x подряд?

Формула из частей через ИЛИ истинна, если истинна хоть одна часть. Поэтому A влияет на ответ только при тех x, где все части без A ложны: там часть с A обязана быть истинной.

В задаче темы части без A — ¬(x ∈ [50; 70]) и ¬ДЕЛ(x, 15). Обе ложны, когда x лежит на отрезке и делится на 15. Такое x одно — 60: соседние кратные 45 и 75 лежат вне отрезка.

Кратные 15 рядом с отрезком [50; 70]. 45 и 75 лежат вне его — для них формула истинна и без A. На отрезке только 60.
xЧасти без AЧто нужно от A
7¬(7 ∈ [50; 70]) = 1ничего: формула уже истинна
55¬ДЕЛ(55, 15) = 1ничего
75¬(75 ∈ [50; 70]) = 1ничего
60обе равны 0ДЕЛ(60, A) = 1: 60 делится на A

Значит, A должно быть делителем 60. Самый большой делитель 60 — само 60. Ответ задачи темы — 60.

Проверим. При A = 60 формула истинна при x = 60, а при всех остальных x её делают истинной части без A. А любое A больше 60 не делит 60 — при x = 60 формула ложна.

Задача темы программой

Как получить тот же ответ программой?

Программа делает то, что написано в условии: для каждого кандидата A проверяет формулу при всех x из большого диапазона и запоминает подходящие A. Сначала формулу переводят на Python — каждому знаку соответствует своя запись:

В условииНа Python
ДЕЛ(x, A)x % A == 0
¬ДЕЛ(x, 15)x % 15 != 0
x ∈ [50; 70]50 <= x <= 70
¬pnot p
p ∧ qp and q
p ∨ qp or q
p → qimp(p, q)
p ≡ qp == q

Для стрелки готового знака нет, поэтому заведём imp(p, q) — она возвращает ¬p ∨ q. Формулу задачи запишем функцией f(x, A):

def imp(p, q):    return (not p) or q  def f(x, A):    return x % A == 0 or imp(50 <= x <= 70, x % 15 != 0)

Теперь переберём кандидатов A и для каждого проверим все x:

answer = 0for A in range(1, 1000):    if all(f(x, A) for x in range(1, 1000)):        answer = Aprint(answer)
60

истинно, только если f(x, A) истинна при каждом x от 1 до 999. Кандидаты A идут по возрастанию, поэтому последнее запомненное A — наибольшее.

Почему x до 999 хватает? Вне отрезка [50; 70] формула истинна сама — все x, где решает A, лежат внутри диапазона. Диапазон берут с запасом, чтобы он накрыл все числа условия.

Тонкости:наименьшее A и запись через <=

Если спрашивают наименьшее A, печатают первое подходящее и останавливают цикл:

for A in range(1, 1000):    if all(f(x, A) for x in range(1, 1000)):        print(A)        break

В разборах стрелку часто пишут как p <= q: для True и False это совпадает с импликацией. Но сравнение выполняется раньше not, and и or, и без лишних скобок легко ошибиться — функция imp надёжнее.

Итого

  • Формула при xкаждое условие — 1 или 0
  • p → qложна только при 1 → 0; это ¬p ∨ q
  • Части через ИЛИистинна, если истинна хоть одна часть
  • Когда решает Aвсе части без A ложны — часть с A обязана быть 1
  • Задача темырешает только x = 60 → A делит 60 → 60
  • Pythonimp, f(x, A), all(...) по всем x

Проверьте себя

Ответь сначала сам, потом открой ответ.

Вопрос 1
Чему равно (x ∈ [50; 70]) ∧ ДЕЛ(x, 15) при x = 45?
ОтветСкрыть ответ
Ответ
0: 45 делится на 15, но лежит вне отрезка — первая часть ложна.
Вопрос 2
Когда импликация p → q ложна?
ОтветСкрыть ответ
Ответ
Только при p = 1 и q = 0.
Вопрос 3
Чему равно 0 → 0?
ОтветСкрыть ответ
Ответ
1: левая часть ложна — нарушения нет.
Вопрос 4
Как записать p → q без стрелки?
ОтветСкрыть ответ
Ответ
¬p ∨ q.
Вопрос 5
В задаче темы делитель 15 заменили на 25. Какое наибольшее A теперь?
ОтветСкрыть ответ
Ответ
50: на отрезке [50; 70] единственное кратное 25 — его левый конец 50, а 75 уже вне отрезка.

Практика

Для проверки ответов нужен JavaScript. Условия, подсказки и решения доступны ниже.

Импликация 0 → 0

Чему равно значение импликации p → q при p = 0 и q = 0?

Введите число.

Наименьшее A: x < 12

Для какого наименьшего целого числа A формула (x < 12) → (x ≤ A) тождественно истинна, то есть принимает значение 1 при любом неотрицательном целом x?

Введите число.

Наибольшее A: x ≥ 5

Для какого наибольшего целого числа A формула (x ≥ 5) → (x > A) тождественно истинна при любом натуральном x?

Введите число.

Наименьшее A: 3x < A

Для какого наименьшего целого числа A формула (x ≤ 8) → (3x < A) тождественно истинна при любом натуральном x?

Введите число.

Наименьшее A: x² ≤ A

Для какого наименьшего целого числа A формула (x < 5) → (x · x ≤ A) тождественно истинна при любом неотрицательном целом x?

Введите число.

Наибольшее A: отрезок [40; 50]

Обозначим через ДЕЛ(n, m) утверждение «натуральное число n делится без остатка на натуральное число m». Для какого наибольшего натурального числа A формула ДЕЛ(x, A) ∨ ((x ∈ [40; 50]) → ¬ДЕЛ(x, 12)) тождественно истинна при любом натуральном x?

Введите число.