OpenFIPI 2.0

15

3

0D2048

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

(x   P) → (((x   Q) /\ ¬(x   A)) → ¬(x   P))

истинно (т.е. принимает значение 1) при любом значении переменной х.

24

def f(x,a1,a2):
     P = 25<= x <= 64
     Q = 40 <= x <= 115
     A = a1 <= x <= a2
     return P <= ((Q and not A)<= (not P))
ox = []
for x in 25, 64, 40, 115:
    for dx in x - 0.01, x, x + 0.01:
        ox.append(dx)
m = []
for a1 in ox:
    for a2 in ox:
        if a2>a1 and all(f(x,a1,a2) == 1 for x in ox):
            m.append(a2 - a1)
print(min(m))

Просмотреть отправленные ответы 0D2048