Задача №1 (арифметические выражения)
Укажите наименьшее целое значение А, при котором выражение
(xy < 3A) ∨ (x ≥ 31) ∨ (x < 5y)
истинно для любых целых положительных значений x и y.
Оформление функции
В задаче указаны две переменные, х и у, поэтому определим функцию f(x, y, a) в соответствии с условием задачи.
ВАЖНО: чтобы не думать нужны ли дополнительные скобки, лучше всегда выделять скобками отдельные выражения.
def f(x, y, a):
return (x * y < 3 * a) or (x >= 31) or (x < 5 * y)
Задача №2 (работа с делимостью)
Обозначим через ДЕЛ(n, m) утверждение «натуральное число n делится без остатка на натуральное число m». Для какого наибольшего натурального числа А формула
¬ДЕЛ(x, А) → (¬ДЕЛ(x, 21) ∧ ¬ДЕЛ(x, 35))
тождественно истинна (то есть принимает значение 1 при любом натуральном значении переменной х)?
Оформление функции
По условию запись «ДЕЛ (х, А)» означает, что х делится на А без остатка. Если х делится на А без остатка, то функция ДЕЛ (х, А) – истинна, то есть равна единице. Если х не делится на А, то функция ложна, равна нулю. Например, для чисел (25; 5) функция ДЕЛ(25; 5) истинна, а для чисел (11; 3) – ложна, так как 11 не делится на 3.

Напишем функцию f(x, a) в соответствии с условием задачи, она будет принимать на вход число х и вычислять для него значение логического выражения из условия задачи.
ДЕЛ (n, m) – это проверка, что число n делится на число m без остатка. Для записи в Python используется знак «%», остаток от деления.
Если перед «ДЕЛ» стоит отрицания, то можно записать выражение как (not (n%m==0)), но короче использовать обозначение «!=», не равно. Например:

Записываем импликации, используя «<=», внимательно расставляем скобки, так, чтобы все части функции выполнялись в правильном порядке:
def f(x, a):
return (x % a != 0) <= ((x % 21 != 0) and (x % 35 != 0))
Также можно завести отдельную функцию для подсчета значения ДЕЛ.
def del(x, a):
return x % a == 0
def f(x, a):
return (not del(x, a)) <= (not del(x, 21) and not del(x, 35))
Задача 3 (поразрядная конъюнкция)
Введём выражение M & K, обозначающее поразрядную конъюнкцию M и K (логическое «И» между соответствующими битами двоичной записи). Определите наименьшее натуральное число A, такое что выражение
(X & 53 = 0) → ((X & 19 ≠ 0) → (X & A ≠ 0))
тождественно истинно (то есть принимает значение 1 при любом натуральном значении переменной X)?
Оформление функции
В Python поразрядная конъюнкция, записывается так же, через знак & (Shift + 7).
Определим функцию f(x, a) в соответствии с условием задачи, правильно записывая все операции, с помощью соответствующих символов:
def f(x, a):
return (x & 53 == 0) <= ((x & 19 != 0) <= (x & a != 0))
Задача 4 (работа с отрезками)
На числовой прямой даны три отрезка: P = [106; 218], Q = [132; 388] и R = [183; 256]. Укажите наименьшую возможную длину такого отрезка A, что формула
(¬((x ∈ Q) → ((x ∈ P) ∨ (x ∈ R)))) → (¬(x ∈ A) → ¬(x ∈ Q))
тождественно истинна, то есть принимает значение 1 при любом значении переменной х?
Оформление функции
Определим функцию f(x, a1, a2) в соответствии с условием задачи, сохранив результаты принадлежности х заданным в задании отрезкам. В качестве значений a1 и a2 в функцию передаются точки концов отрезка, который проверяется.
def f(x, a1, a2):
# принадлежность отрезку P = [106; 218]
P = 106 <= x <= 218
# принадлежность отрезку Q = [132; 388]
Q = 132 <= x <= 388
# принадлежность отрезку R = [183; 256]
R = 183 <= x <= 256
# принадлежность искомому отрезку А = [a1, a2]
A = a1 <= x <= a2
return (not(Q <= (P or R))) <= ((not A) <= (not Q))
Задача №5 (работа с множествами)
Элементами множеств А, P, Q являются натуральные числа, причём P={2,4,6,8,10,12} и Q={4,8,12,116}. Известно, что выражение
(x ∈ P) → (((x ∈ Q) ∧ (x ∉ A)) → (x ∉ P))
истинно (т. е. принимает значение 1) при любом значении переменной х. Определите наименьшее возможное значение суммы элементов множества A.
Оформление функции
Определим функцию f(x, a), где а – проверяемое множество.
Определим принадлежность значения х множествам с помощью оператора in.
def f(x, a):
# х принадлежит множеству Р
P = x in {2, 4, 6, 8, 10, 12}
# х принадлежит множеству Q
Q = x in {4, 8, 12, 116}
# х принадлежит множеству A
A = x in a
return P <= ((Q and not A) <= (not P))