Тема 15. Алгебра логики – преобразование логических выражений

15.05 Отрезки

Вспоминай формулы по каждой теме
Решай новые задачи каждый день
Вдумчиво разбирай решения
ШКОЛКОВО.
Готовиться с нами - ЛЕГКО!
Подтемы раздела алгебра логики – преобразование логических выражений
Решаем задачи

Ошибка.
Попробуйте повторить позже

Задача 1#49372

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

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

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

Показать ответ и решение

В начале для удобства заменим некоторые выражения:

x ∈ Q = Q
x ∈ P = P
x ∈ A = A

Тогда выражение примет такой вид:

P  =⇒  ((Q ∧ ¬A ) =⇒  ¬P)

Заменим импликацию на отрицание первого или второе. Выражение будет выглядеть следующим образом:

¬P ∨ (¬(Q ∧¬A )∨ ¬P )

Раскроем отрицание в скобке. Теперь выражение имеет такой вид:

¬P ∨ (¬Q ∨ A ∨¬P )

Избавимся от повторяющейся Р под отрицанием и получим окончательное упрощенное выражение:

¬P ∨ ¬Q ∨ A

Как можем заметить, нам нужно найти значения x когда выражение равно истине, при этом только А должна равняться единице, а все остальные – 0. Не P и Не Q будут равны 0, когда х будут находиться в пределах отрезков P и Q. Получается, нас интересует отрезок, который находится как в отрезке P,так и в отрезке Q. Это отрезок: [66;100]  . Ответ:34.

Ответ: 34

Ошибка.
Попробуйте повторить позже

Задача 2#6012

На числовой прямой даны два отрезка: P  = [15;50]  и Q =  [35; 60]  . Укажите наибольшую возможную длину промежутка A  , для которого формула

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

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

Показать ответ и решение

Преобразуем данное выражение по законам де Моргана:

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

((x ∈ A) ∨ (x ∈ P)) →  ((x∈∕ A) ∨ (x ∈ Q))

¬((x ∈ A ) ∨ (x ∈ P )) ∨ ((x ∕∈ A ) ∨ (x ∈ Q ))

(x ∕∈ A ) ∧ (x ∕∈ P ) ∨ (x ∕∈ A ) ∨ (x ∈ Q )

Воспользуемся правилом:

A ∧  B ∨ A =  A ∧ (B ∨ 1) = A

Получим:

(x ∕∈ A ) ∨ (x ∈ Q )

Получается, что x  должен принадлежать Q  , либо не принадлежать A  . Так как мы ищем наибольшую возможную длину A  , необходимо, чтобы он полностью содержался в Q  , т.е. максимальная длина отрезка A =  60 − 35 = 25  .

Ответ: 25

Ошибка.
Попробуйте повторить позже

Задача 3#6743

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

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

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

Показать ответ и решение

Преобразуем данное выражение по законам де Моргана и закону раскрытия импликации:

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

¬(x ∈ P ) ∨ ¬ (x ∈ Q) ∨ (x ∈ A )

(x ∕∈ P ) ∨ (x ∕∈ Q ) ∨ (x ∈ A )

Первая и вторая скобка будут ложны только тогда, когда x  принадлежит одновременно и P  , и Q  . Значит, наша задача подобрать такое A  , чтобы оно перекравыло область пересечения этих отрезков. Тогда, наименьшая длина A  = 17 − 15 = 2  .

Ответ: 2

Ошибка.
Попробуйте повторить позже

Задача 4#6744

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

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

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

Показать ответ и решение

Преобразуем данное выражение по законам де Моргана:

¬ (x ∈ P ) ∨ (¬((x ∈ Q ) ∧ ¬ (x ∈ A)) ∧ ¬(x ∈ P ))
¬(x ∈ P ) ∨ ¬ (x ∈ Q) ∨ (x ∈ A )
(x ∕∈ P ) ∨ (x ∕∈ Q ) ∨ (x ∈ A )

Первое и второе выражение будут ложны только тогда, когда x  принадлежит одновременно и    P  , и Q  . Значит, наша задача подобрать такое A  , чтобы оно перекравыло область пересечения этих отрезков. Тогда, наименьшая длина A  = 35 − 20 = 15  .

Ответ: 15

Ошибка.
Попробуйте повторить позже

Задача 5#6745

На числовой прямой даны два отрезка: P  = [10;50]  и Q =  [30; 65]  .Отрезок A  таков, что приведённая ниже формула истинна при любом значении переменной x  :

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

Какова наименьшая возможная длина отрезка A  ?

Показать ответ и решение

Преобразуем данное выражение по законам де Моргана:

(x ∈ A ) ∨ (¬(x ∈ P ) ∧ (x ∈ Q )) ∨ A )
¬(x ∈ A ) ∨ ¬ (x ∈ Q) ∨ (x ∈ A)
(x ∕∈ P ) ∨ (x ∕∈ Q ) ∨ A

Первое и второе выражение будут ложны только тогда, когда x  принадлежит одновременно и    P  , и Q  . Значит, наша задача подобрать такое A  , чтобы оно перекравыло область пересечения этих отрезков. Тогда, наименьшая длина A  = 50 − 30 = 20  .

Ответ: 20

Ошибка.
Попробуйте повторить позже

Задача 6#6746

На числовой прямой даны два отрезка: P  = [15;50]  и Q =  [35; 60]  . Укажите наибольшую возможную длину промежутка A  , для которого формула

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

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

Показать ответ и решение

Преобразуем данное выражение по законам де Моргана:

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

Получается, что x  должен принадлежать Q  , либо не принадлежать A  . Так как мы ищем наибольшую возможную длину A  , необходимо, чтобы он полностью содержался в Q  , т.е. максимальная длина отрезка A =  60 − 35 = 25  .

Ответ: 25

Ошибка.
Попробуйте повторить позже

Задача 7#6747

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

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

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

Показать ответ и решение

Преобразуем данное выражение по законам де Моргана:

¬ (x ∈ P ) ∨ (¬((x ∈ Q ) ∧ ¬ (x ∈ A)) ∧ ¬(x ∈ P ))
¬(x ∈ P ) ∨ ¬ (x ∈ Q) ∨ (x ∈ A )
(x ∕∈ P ) ∨ (x ∕∈ Q ) ∨ (x ∈ A )

Первое и второе выражение будут ложны только тогда, когда x  принадлежит одновременно и    P  , и Q  . Значит, наша задача подобрать такое A  , чтобы оно перекравыло область пересечения этих отрезков. Тогда, наименьшая длина A  = 17 − 15 = 2  .

Ответ: 2

Ошибка.
Попробуйте повторить позже

Задача 8#6748

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

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

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

Показать ответ и решение

Преобразуем данное выражение по законам де Моргана:

¬ (x ∈ P ) ∨ (¬((x ∈ Q ) ∧ ¬ (x ∈ A)) ∧ ¬(x ∈ P ))
¬(x ∈ P ) ∨ ¬ (x ∈ Q) ∨ (x ∈ A )
(x ∕∈ P ) ∨ (x ∕∈ Q ) ∨ (x ∈ A )

Первое и второе выражение будут ложны только тогда, когда x  принадлежит одновременно и    P  , и Q  . Значит, наша задача подобрать такое A  , чтобы оно перекравыло область пересечения этих отрезков. Тогда, наименьшая длина A  = 35 − 20 = 15  .

Ответ: 15

Ошибка.
Попробуйте повторить позже

Задача 9#6749

На числовой прямой даны два отрезка: P  = [10;50]  и Q =  [30; 65]  .Отрезок A таков, что приведённая ниже формула истинна при любом значении переменной x  :

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

Какова наименьшая возможная длина отрезка A  ?

Показать ответ и решение

Преобразуем данное выражение по законам де Моргана:

(x ∈ A ) ∨ (¬(x ∈ P ) ∧ (x ∈ Q )) ∨ A )
¬(x ∈ A ) ∨ ¬ (x ∈ Q) ∨ (x ∈ A)
(x ∕∈ P ) ∨ (x ∕∈ Q ) ∨ A

Первое и второе выражение будут ложны только тогда, когда x  принадлежит одновременно и    P  , и Q  . Значит, наша задача подобрать такое A  , чтобы оно перекравыло область пересечения этих отрезков. Тогда, наименьшая длина A  = 50 − 30 = 20  .

Ответ: 20

Ошибка.
Попробуйте повторить позже

Задача 10#16312

На числовой прямой даны два отрезка: P = [25;36]  и Q = [28;55].  Укажите минимальную длину промежутка A,  что формула

(x ∈ A)∨ (x ∈ Q )∨(x ∕∈ P)

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

Показать ответ и решение

Составим систему для врагов:

(
||| x ∕∈ A
{
|| x ∕∈ Q
|( x ∈ P

Враги хотят, чтобы x  был одновременно не в Q  и в P  . Такой промежуток — [25;28)  . Тогда мечты врагов такие: «Вот бы промежуток [25;28)  был не в A  ».

Чтобы победить, друзья подберут такой A  , который гарантированно будет содержать промежуток [25;28)  и будет как можно меньше. Наименьшая длина такого промежутка равна 28− 25 = 3  .

Ответ: 3

Ошибка.
Попробуйте повторить позже

Задача 11#18041

На числовой прямой даны два отрезка: P = [20,50]  и Q = [30,40]  . Найдите наименьшую возможную длину отрезка     A  , при котором формула

-------   -----------------
(x ∈ A ) → ((x ∈ P)∨ (x ∈ Q ))

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

Показать ответ и решение

Составим систему для врагов:

(
||| x ∕∈ A
{ ⌊
|| ⌈x ∈ P
|(  x ∈ Q

Мечты врагов такие: «Вот бы любой x  принадлежал P  или Q  и не принадлежал A  ». То есть, враги хотят, чтобы x  был в [20;50]  и не был в A  . Тогда друзья хотят, чтобы этот отрезок был в A  , и сам A  был минимальной длины. Значит, A = [20;50]  и |A | = 50− 20 = 30  .

Ответ: 30

Ошибка.
Попробуйте повторить позже

Задача 12#18042

На числовой прямой даны два отрезка: P = [11,28]  и Q = [15,35]  . Найдите наибольшую возможную длину отрезка     A  , при котором формула

         ------------------
(x ∈ A )∧ ((x ∕∈ P) → (x ∈ Q ))

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

Показать ответ и решение

Составим систему для врагов:

(
||| x ∈ A
{
|| x ∕∈ P
|( x ∕∈ Q

Мечты врагов такие: «Вот бы любой x  из отрезка A  не принадлежал отрезкам P  и Q  ». Тогда друзья, наоборот, хотят, чтобы любой x  из отрезка A  принадлежал отрезкам P  и Q  . Наибольшая возможная длина отрезка A  — объединение отрезков P  и Q  . Она равна 35− 11 = 24  .

Ответ: 24

Ошибка.
Попробуйте повторить позже

Задача 13#18043

На числовой прямой даны три отрезка: P = [20,30]  , Q = [5,15]  и C = [35,50]  . Какова наименьшая длина отрезка    A  , при котором формула

                    -------
((x ∈ P) → (x ∈ Q )) ∨((x ∈ A ) → (x ∈ C ))

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

Показать ответ и решение

Враги мечтают чтобы x  был одновременно в P  , не в Q  , не в C  и при этом не в A  . Это отрезок [20;30]  .

Друзья хотят чтобы этот отрезок был в A  и длина A  была как можно меньше. Тогда A = [20;30]  и |A| = 30 − 20 = 10  .

Ответ: 10

Ошибка.
Попробуйте повторить позже

Задача 14#20058

На числовой прямой даны два отрезка: P = [8;12]  и Q = [4;30]  . Укажите наибольшую возможную длину промежутка A  , для которого формула

                    -------
((x ∈ P) ≡ (x ∈ Q)) → (x ∈ A)

тождественно истинна (т.е. принимает значение 1 при любых значениях переменной x  ).

Показать ответ и решение
def f(x, P, Q, A):  
    return (inn(x, P) == inn(x, Q)) <= (not inn(x, A))  
 
def inn(x, F):  
    return (F[0] <= x <= F[1])  
 
P = [8, 12]  
Q = [4, 30]  
k = 3  
ans = []  
ans_len = 0  
for start in range(32 * k):  
    for finish in range(start, 32 * k):  
        met_false = False  
        A = [start / k, finish / k]  
        for x in range(50 * k):  
            if not f(x / k, P, Q, A):  
                met_false = True  
                break  
        if not met_false:  
            A[0] = int(A[0])  
            if int(A[1]) != A[1]:  
                A[1] += 1  
            A[1] = int(A[1])  
 
            if ans_len < A[1] - A[0]:  
                ans_len = A[1] - A[0]  
                ans = A.copy()  
print(ans_len, ans)

Ответ: 18

Ошибка.
Попробуйте повторить позже

Задача 15#20059

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

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

тождественно истинна (т.е. принимает значение 1 при любых значениях переменной x  ).

Показать ответ и решение

Решение аналитикой

Формула имеет вид импликации, которая будет истинной в следующих случаях:

1. Если x ∕∈ A  ложно (то есть x ∈ A  ), тогда формула истинна независимо от значений в P  и Q  .

2. Если x ∕∈ A  истинно (то есть x ∕∈ A  ), то необходимо, чтобы (x ∕∈ P) ∧(x ∕∈ Q )  было истинным.

Таким образом, для того чтобы формула была тождественно истинной, необходимо, чтобы все значения, которые не принадлежат промежутку A  , также не принадлежали ни одному из отрезков P  и Q  .

Даны два отрезка:

- P = [0,10]

- Q = [25,50]

Чтобы формула была тождественно истинной, необходимо, чтобы промежуток A  содержал все значения из обоих отрезков P  и Q  . Это значит, что:

A = [0,10]∪[25,50].

Теперь найдем наименьшую длину промежутка A  . Длина каждого из отрезков:

1. Длина отрезка [0,10] = 10− 0 = 10.

2. Длина отрезка [25,50] = 50− 25 = 25.

Общая длина промежутка:

LA = L [0,10] + L[25,50] = 10+ 25 = 35.

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

Наименьшая длина промежутка может быть достигнута путем выбора:

A = [0,50].

Длина этого промежутка:

LA = 50− 0 = 50.

Решение программой

def f(x, P, Q, A):
    return ((not inn(x, A)) <= ((not inn(x, P)) and (not inn(x, Q))))

def inn(x, F):
    return (F[0] <= x <= F[1])

P = [0, 10]
Q = [25, 50]
k = 3
ans = []
ans_len = 100000000000000000000000
for start in range(60 * k):
    for finish in range(start, 60 * k):
        met_false = False
        A = [start / k, finish / k]
        for x in range(60 * k):
            if not f(x / k, P, Q, A):
                met_false = True
                break
        if not met_false:
            A[0] = int(A[0])
            if int(A[1]) != A[1]:
                A[1] += 1
            A[1] = int(A[1])

            if ans_len > A[1] - A[0]:
                ans_len = A[1] - A[0]
                ans = A.copy()
print(ans_len, ans)

Ответ: 50

Ошибка.
Попробуйте повторить позже

Задача 16#21467

На числовой прямой даны два отрезка: P = [8;12]  и Q = [4;30]  . Укажите наибольшую возможную длину промежутка A  , для которого формула

                    -------
((x ∈ P) ≡ (x ∈ Q)) → (x ∈ A)

тождественно истинна (т.е. принимает значение 1  при любых значениях переменной x  ).

Показать ответ и решение

Напишем, чего хотят враги:

(
|||| x⌊ ∈( A
||||  { x ∈ P
||{ ||
  ||( x ∈ Q
|||| ||({
|||| |⌈  x∈∕P
||(  ( x∈∕Q

Отсюда следует, что врагам нужно, чтобы или x  был и в P  , и в Q  , или же x  не был ни в P  , ни в Q  , при этом всём x  должен находиться в промежутке A  .

Обратим внимание, что отрезок P  ([8;12]  ) находится в отрезке Q  ([4;30]  ). Таким образом, получается, что система врагов ломается, если x  принадлежит отрезку [4;30]  , но при этом не принадлежит отрезку [8;12]  , или же, если   x  не принадлежит промежутку A  .

Следовательно, друзьям необходимо сделать такой A  , что если x  попадает в данный промежуток, то при этом     x  также будет входить в Q  , но не входить в P  . Под ответ подходят два промежутка — [4;8)  (длина — 4  ) и (12;30]  (длина — 18  ), но, так как в условии задачи просят найти наибольшую возможную длину промежутка A  , то ответ - 18  .

 

Ответ: 18

Ошибка.
Попробуйте повторить позже

Задача 17#22653

На числовой прямой даны два отрезка: P = [25;36]  и Q = [28;55].  Укажите минимальное количество целых точек на промежутке A,  что формула

(x ∈ A)∨ (x ∈ Q )∨(x ∕∈ P)

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

Показать ответ и решение
def f(x, A):  
    P = [25, 36]  
    Q = [28, 55]  
    return inn(x, A) or inn(x, Q) or not (inn(x, P))  
def inn(x, T):  
    return T[0] <= x <= T[1]  
def podh(A):  
    for x in range(100 * k):  
        if not f(x / k, A):  
            return False  
    return True  
k = 4  
minim = 1000  
for a in range(100 * k):  
    for b in range(a, 100 * k):  
        A = [a / k, b / k]  
        if podh(A):  
            minim = min(minim, A[1] - A[0])  
print(round(minim))

Ответ: 3

Ошибка.
Попробуйте повторить позже

Задача 18#23191

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

         -------
((x ∈ A )∧(x ∈ Q)) → ((x ∈ P)∨ (x ∈ Q ))

тождественно истинна (т.е. принимает значение 1 при любых значениях переменной x  ).

Показать ответ и решение
def ins(x, a):  
    if a[0] <= x <= a[1]:  
        return True  
    return False  
def f(x, a):  
    q = [45, 68]  
    p = [15, 33]  
    if ((ins(x, a)) and not(ins(x, q))) <= ((ins(x, p)) or (ins(x, q))):  
        return True  
    return False  
 
ar = [0, 0]  
len_ar = 0  
k = 4  
for a in range(70 * k):  
    for b in range(a, 70 * k):  
        podh = True  
        ar[0] = a/k  
        ar[1] = b/k  
        for x in range(100 * k):  
            if not(f(x/k, ar)):  
                podh = False  
                break  
        if podh:  
  #следующие три строки - выравнивание длины, чтобы ответ был целым  
            ar[0] = int(ar[0])  
            if ar[1] != int(ar[1]):  
                ar[1] = int(ar[1]) + 1  
            if len_ar < ar[1] - ar[0]:  
                len_ar = ar[1] - ar[0]  
print(len_ar)  

Ответ: 23

Ошибка.
Попробуйте повторить позже

Задача 19#25100

На числовой прямой даны отрезки A = [70;90],B = [40;60]  и C = [0;N]  и функция

F (x) = (¬(x ∈ A ) → (x ∈ B ))∧ (¬ (x ∈ C) → (x ∈ A))

При каком наименьшем числе N  функция F (x)  истинна более чем для 30  целых чисел x  ?

Показать ответ и решение
def inn(x, A):
    return A[0] <= x <= A[1]

for i in range(10000):
    A = [70, 90]
    B = [40, 60]
    C = [0, i]
    counter = 0
    for x in range(1000):
        f = ((not(inn(x, A))) <= (inn(x, B))) and (
            (not(inn(x, C))) <= (inn(x, A)))
        counter += f
    if counter > 30:
        print(i)
        break

Ответ: 49

Ошибка.
Попробуйте повторить позже

Задача 20#25961

На числовой прямой даны отрезки A = [30;50],B = [40;46] и C = [N;61]  и функция

F(x) = (¬(x ∈ B ) → ¬(x ∈ A ))∧ (¬(x ∈ C ) → (x ∈ B))

При каком наибольшем числе N  функция F (x)  истинна более чем для 25  целых чисел x  ?

Показать ответ и решение
def ins(x, A):
    return (x >= A[0]) and (x <= A[1])

def f(x, N):
    A = [30, 50]
    B = [40, 46]
    C = [N, 61]
    return ((not ins(x, B)) <= (not ins(x, A))) and ((not ins(x, C)) <= ins(x, B))

for N in range(1, 100):
    k = 0
    for x in range(1, 100):
        k += f(x, N)
    if k > 25:
        maxim = N
print(maxim)

Ответ: 22
Рулетка
Вы можете получить скидку в рулетке!