На числовой прямой даны два отрезка: B = [22; 40] и C = [32; 50]. Укажите наименьшую возможную длину такого отрезка A, для которого логическое выражение
¬(x ∈ A) → ((x ∈ B) ≡ (x ∈ C))
истинно (т. е. принимает значение 1) при любом значении переменной х.
Введем обозначения:
Применив преобразование импликации, получаем:
¬A → (B ≡ C) = A ∨ (B ≡ C)
Логическое ИЛИ истинно, если истинно хотя бы одно утверждение. Выражение B ≡ C истинно
Ответ: 28.
Приведём решение Сергея Донец на PascalABC.NET:
begin
var B := 22..40;var C := 32..50;
var setX:=|B.First,B.Last,C.First,C.Last,-999,999|
.SelectMany(x->|x-0.1,x,x+0.1|);
setX.Order.Combinations(2).Select(m->m[0]..m[1])
.Where(A->setX.All(x->
not(x in A)<=((x in B)=(x in C))
)).Min(A->A.Size).Round.Print;
end.

