Тема 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.

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

p = [i for i in range(55, 101)] # задаем отрезок p
q = [i for i in range(66, 130)] # задаем отрезок q
mn = 10**10
for a1 in range(1, 200): # перебираем начало отрезка а
    for a2 in range(a1 + 1, 201): # перебираем конец отрезка а
        c = 0 # флаг, который будет показывать при всех ли х для текущего отрезка а выражение было истинным
        a = [i for i in range(a1, a2)] # формируем отрезок а
        for x in range(1, 500): # перебираем значения x
            # если при текущем x - выражение ложно
            if ((x in p) <= (((x in q) and (x not in a)) <= (x not in p))) == False:
                c = 1 # меняем значение флага
                # и сбрасываем цикл, переходим к следующему отрезку а,
                # так как для данного отрезка а выражение не тождественно истинно
                break
        if c == 0: # если значение флага не менялось, значит, при любом х при данном отрезке а выражение было истинным
            mn = min(len(a)-1,mn) # вычисляем минимальную длину отрезка
print(mn)

Ответ: 34

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

Задача 2#6012

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

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

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

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

Решение Python:

p = range(15, 51)
q = range(35, 60)
mx = []
for i in range(10, 60):
    for j in range(i+1, 61):
        a = range(i, j)
        c = 0
        for x in range(1, 1000):
            if (((not x in a) <= (x in p)) <= ((x in a) <= (x in q))) == False:
                c = 1
                break
        if c == 0:
            mx.append(len(a))
print(max(mx))

Решение руками:

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

(¬ (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  .

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

p = [i for i in range(10, 18)] # задаем отрезок p
q = [i for i in range(15, 26)] # задаем отрезок q
mn = 10**10
for a1 in range(1, 50): # перебираем начало отрезка а
    for a2 in range(a1 + 1, 51): # перебираем конец отрезка а
        c = 0 # флаг, который будет показывать при всех ли х для текущего отрезка а выражение было истинным
        a = [i for i in range(a1, a2)] # формируем отрезок а
        for x in range(1, 500): # перебираем значения x
            # если при текущем x - выражение ложно
            if ((x in p) <= (((x in q) and (x not in a)) <= (x not in p))) == False:
                c = 1 # меняем значение флага
                # и сбрасываем цикл, переходим к следующему отрезку а,
                # так как для данного отрезка а выражение не тождественно истинно
                break
        if c == 0: # если значение флага не менялось, значит, при любом х при данном отрезке а выражение было истинным
            mn = min(len(a)-1,mn) # вычисляем минимальную длину отрезка
print(mn)

Ответ: 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  .

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

p = [i for i in range(5, 36)] # задаем отрезок p
q = [i for i in range(20, 52)] # задаем отрезок q
mn = 10**10
for a1 in range(1, 100): # перебираем начало отрезка а
    for a2 in range(a1 + 1, 101): # перебираем конец отрезка а
        c = 0 # флаг, который будет показывать при всех ли х для текущего отрезка а выражение было истинным
        a = [i for i in range(a1, a2)] # формируем отрезок а
        for x in range(1, 500): # перебираем значения x
            # если при текущем x выражение ложно
            if ((x in p) <= (((x in q) and (x not in a)) <= (x not in p))) == False:
                c = 1 # меняем значение флага
                # и сбрасываем цикл, переходим к следующему отрезку а,
                # так как для данного отрезка а выражение не тождественно истинно
                break
        if c == 0: # если значение флага не менялось, значит, при любом х при данном отрезке а выражение было истинным
            mn = min(len(a)-1,mn) # вычисляем минимальную длину отрезка
print(mn)

Ответ: 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  .

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

p = [i for i in range(10, 51)] # задаем отрезок p
q = [i for i in range(30, 66)] # задаем отрезок q
mn = 10**10
for a1 in range(1, 100): # перебираем начало отрезка а
    for a2 in range(a1 + 1, 101): # перебираем конец отрезка а
        c = 0 # флаг, который будет показывать при всех ли х для текущего отрезка а выражение было истинным
        a = [i for i in range(a1, a2)] # формируем отрезок а
        for x in range(1, 500): # перебираем значения x
            # если при текущем x выражение ложно
            if ((x not in a) <= (((x in p) and (x in q)) <= (x in a))) == False:
                c = 1 # меняем значение флага
                # и сбрасываем цикл, переходим к следующему отрезку а,
                # так как для данного отрезка а выражение не тождественно истинно
                break
        if c == 0: # если значение флага не менялось, значит, при любом х при данном отрезке а выражение было истинным
            mn = min(len(a)-1,mn) # вычисляем минимальную длину отрезка
print(mn)

Ответ: 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  .

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

p = [i for i in range(15, 51)] # задаем отрезок p
q = [i for i in range(35, 61)] # задаем отрезок q
mx = 0
for a1 in range(1, 100): # перебираем начало отрезка а
    for a2 in range(a1 + 1, 101): # перебираем конец отрезка а
        c = 0 # флаг, который будет показывать при всех ли х для текущего отрезка а выражение было истинным
        a = [i for i in range(a1, a2)] # формируем отрезок а
        for x in range(1, 500): # перебираем значения x
            # если при текущем x выражение ложно
            if (((x not in a ) <= (x in p)) <= ((x in a) <= (x in q))) == False:
                c = 1 # меняем значение флага
                # и сбрасываем цикл, переходим к следующему отрезку а,
                # так как для данного отрезка а выражение не тождественно истинно
                break
        if c == 0: # если значение флага не менялось, значит, при любом х при данном отрезке а выражение было истинным
            mx = max(len(a)-1,mx) # вычисляем максимальную длину отрезка
print(mx)

Ответ: 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  при которых исходное выражение дает ложь.

(x ∈ P ) ∧ (x ∈ Q )

Отсюда следует, что выражение будет ложным только тогда, когда 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  .

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

p = [i/4 for i in range(25*4, 37*4)] # задаем отрезок p, добавляя дробные числа
q = [i/4 for i in range(28*4, 56*4)] # задаем отрезок q, добавляя дробные числа
mn = 10**10
for a1 in range(1, 100): # перебираем начало отрезка а
    for a2 in range(a1 + 1, 101): # перебираем конец отрезка а
        c = 0 # флаг, который будет показывать при всех ли х для текущего отрезка а выражение было истинным
        a = [i/4 for i in range(a1*4, a2*4)] # формируем отрезок а, добавляя дробные числа
        for x in range(1*4, 500*4): # перебираем значения x
            # если при текущем x выражение ложно
            if (((x/4) in a) or ((x/4) in q) or ((x/4) not in p)) == False:
                c = 1 # меняем значение флага
                # и сбрасываем цикл, переходим к следующему отрезку а,
                # так как для данного отрезка а выражение не тождественно истинно
                break
        if c == 0: # если значение флага не менялось, значит, при любом х при данном отрезке а выражение было истинным
            mn = min(len(a)/4,mn)
print(mn)

Ответ: 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  .

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

p = [i for i in range(20, 51)] # задаем отрезок p
q = [i for i in range(30, 41)] # задаем отрезок q
mn = 10**10
for a1 in range(1, 100): # перебираем начало отрезка а
    for a2 in range(a1 + 1, 101): # перебираем конец отрезка а
        c = 0 # флаг, который будет показывать при всех ли х для текущего отрезка а выражение было истинным
        a = [i for i in range(a1, a2)] # формируем отрезок а
        for x in range(1, 500): # перебираем значения x
            # если при текущем x - выражение ложно
            if ((x not in a) <= ((x not in p) and (x not in q))) == False:
                c = 1 # меняем значение флага
                # и сбрасываем цикл, переходим к следующему отрезку а,
                # так как для данного отрезка а выражение не тождественно истинно
                break
        if c == 0: # если значение флага не менялось, значит, при любом х при данном отрезке а выражение было истинным
            mn = min(len(a)-1,mn) # вычисляем минимальную длину отрезка
print(mn)

Ответ: 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  она дает истину:

((x ∈ P )∨ (x ∈ Q))

Это выражение ложно (а исходное соответственно истино), когда x  не принадлежит ни отрезку Q  ни отрезку   P  , и не им одновременно. Это выполняется при x ∕∈ [11;35]  Тогда, чтобы исходное выражение давало ложь, необходимо чтобы отрезок A полностью лежал в области [11;35]  . Поскольку в задании проясят найти максимальную длину отрезка A, то A = [11;35]  . Его длина равна 35− 11 = 24  .

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

p = [i for i in range(11, 29)] # задаем отрезок p
q = [i for i in range(15, 36)] # задаем отрезок q
mx = 0
for a1 in range(1, 100): # перебираем начало отрезка а
    for a2 in range(a1 + 1, 101): # перебираем конец отрезка а
        c = 0 # флаг, который будет показывать при всех ли х для текущего отрезка а выражение было ложным
        a = [i for i in range(a1, a2)] # формируем отрезок а
        for x in range(1, 500): # перебираем значения x
            # если при текущем x выражение истинно
            if ((x  in a) and (not((x not in p) <= (x in q)))):
                c = 1 # меняем значение флага
                # и сбрасываем цикл, переходим к следующему отрезку а,
                # так как для данного отрезка а выражение не тождественно ложно
                break
        if c == 0: # если значение флага не менялось, значит, при любом х при данном отрезке а выражение было ложным
            mx = max(len(a)-1,mx) # вычисляем максимальную длину отрезка
print(mx)

Ответ: 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  .

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

p = [i for i in range(20, 31)] # задаем отрезок p
q = [i for i in range(5, 16)] # задаем отрезок q
c = [i for i in range(35, 51)] # задаем отрезок с
mn = 10**10
for a1 in range(1, 100): # перебираем начало отрезка а
    for a2 in range(a1 + 1, 101): # перебираем конец отрезка а
        f = 0 # флаг, который будет показывать при всех ли х для текущего отрезка а выражение было истинным
        a = [i for i in range(a1, a2)] # формируем отрезок а
        for x in range(1, 500): # перебираем значения x
            # если при текущем x - выражение ложно
            if (((x in p) <= (x in q)) or ((x not in a) <= (x in c))) == False:
                f = 1 # меняем значение флага
                # и сбрасываем цикл, переходим к следующему отрезку а,
                # так как для данного отрезка а выражение не тождественно истинно
                break
        if f == 0: # если значение флага не менялось, значит, при любом х при данном отрезке а выражение было истинным
            mn = min(len(a)-1,mn) # вычисляем минимальную длину отрезка
print(mn)

Ответ: 10

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

Задача 14#20058

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

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

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

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

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

p = [i/4 for i in range(8*4, 13*4)] # задаем отрезок p
q = [i/4 for i in range(4*4, 31*4)] # задаем отрезок q
mx = 0
for a1 in range(1, 100): # перебираем начало отрезка а
    for a2 in range(a1 + 1, 101): # перебираем конец отрезка а
        c = 0 # флаг, который будет показывать при всех ли х для текущего отрезка а выражение было истинным
        a = [i/4 for i in range(a1*4, a2*4)] # формируем отрезок а
        for x in range(1*4, 500*4): # перебираем значения x
            # если при текущем x - выражение ложно
            if ((((x/4) in p) == ((x/4) in q)) <= ((x/4) not in a)) == False:
                c = 1 # меняем значение флага
                # и сбрасываем цикл, переходим к следующему отрезку а,
                # так как для данного отрезка а выражение не тождественно истинно
                break
        if c == 0: # если значение флага не менялось, значит, при любом х при данном отрезке а выражение было истинным
            mx = max(len(a)/4,mx) # вычисляем максимальную длину отрезка
print(mx)

Ответ: 18

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

Задача 15#20059

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

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

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

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

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

Первым шагом раскроем импликацию:

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

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

(x ∈ P) ∨(x ∈ Q )

Отсюда следует, что выражение ложно когда x  принадлежит или отрезку P  или отрезку Q  . Тогда, отрезок   A  должен содержать все иксы, принадлежащие этим отрезкам. Наименьшим таким отрезком будет [0; 50]. Его длина 50 − 0 = 50  .

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

p = [i for i in range(11)] # задаем отрезок p
q = [i for i in range(25, 51)] # задаем отрезок q
mn = 10**10
for a1 in range(100): # перебираем начало отрезка а
    for a2 in range(a1 + 1, 101): # перебираем конец отрезка а
        c = 0 # флаг, который будет показывать при всех ли х для текущего отрезка а выражение было истинным
        a = [i for i in range(a1, a2)] # формируем отрезок а
        for x in range(500): # перебираем значения x
            # если при текущем x - выражение ложно
            if ((x not in a) <= ((x not in p) and (x not in q))) == False:
                c = 1 # меняем значение флага
                # и сбрасываем цикл, переходим к следующему отрезку а,
                # так как для данного отрезка а выражение не тождественно истинно
                break
        if c == 0: # если значение флага не менялось, значит, при любом х при данном отрезке а выражение было истинным
            mn = min(len(a)-1,mn) # вычисляем минимальную длину отрезка
print(mn)

Ответ: 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.

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

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

p = [i for i in range(25, 37)] # задаем отрезок p
q = [i for i in range(28, 56)] # задаем отрезок q
mn = 10**10
for a1 in range(1, 100): # перебираем начало отрезка а
    for a2 in range(a1 + 1, 101): # перебираем конец отрезка а
        c = 0 # флаг, который будет показывать при всех ли х для текущего отрезка а выражение было истинным
        a = [i for i in range(a1, a2)] # формируем отрезок а
        for x in range(1, 500): # перебираем значения x
            # если при текущем x - выражение ложно
            if ((x in a) or (x in q) or (x not in p)) == False:
                c = 1 # меняем значение флага
                # и сбрасываем цикл, переходим к следующему отрезку а,
                # так как для данного отрезка а выражение не тождественно истинно
                break
        if c == 0: # если значение флага не менялось, значит, при любом х при данном отрезке а выражение было истинным
            mn = min(len(a),mn) # вычисляем минимальное количество чисел в отрезке а
print(mn)

Ответ: 3

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

Задача 18#23191

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

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

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

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

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

p = [i for i in range(15, 34)] # задаем отрезок p
q = [i for i in range(45, 69)] # задаем отрезок q
mx = 0
for a1 in range(1, 100): # перебираем начало отрезка а
    for a2 in range(a1 + 1, 101): # перебираем конец отрезка а
        c = 0 # флаг, который будет показывать при всех ли х для текущего отрезка а выражение было истинным
        a = [i for i in range(a1, a2)] # формируем отрезок а
        for x in range(1, 500): # перебираем значения x
            # если при текущем x - выражение ложно
            if (((x in a) and (x not in q)) <= ((x in p) or (x in q))) == False:
                c = 1 # меняем значение флага
                # и сбрасываем цикл, переходим к следующему отрезку а,
                # так как для данного отрезка а выражение не тождественно истинно
                break
        if c == 0: # если значение флага не менялось, значит, при любом х при данном отрезке а выражение было истинным
            mx = max(len(a)-1,mx) # вычисляем максимальную длину отрезка а
print(mx)

Ответ: 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
Рулетка
Вы можете получить скидку в рулетке!