OpenFIPI 2.0

15

3

D5D16C

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

(xP) → (((xQ) /\ ¬(xA)) → ¬(xP))

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

29

def f(x,a1,a2):
    P = 17 <= x <= 58
    Q = 29 <= x <= 80
    A = a1 <= x <= a2
    return P <= ((Q and not A) <= (not P))
ox = []
for x in 17, 58, 29, 80:
    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))

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