OpenFIPI 2.0

15

3

B3B99C

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

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

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

19

for x in [k * 0.25 for k in range(-10000,10000)]:
    p = 15<=x<=40
    q = 21<=x<=63
    a = 0
    f = p <= ((q and (not a)) <= (not p))
    if f != 1:
        print(x)

_________________________________________________-

def f(x,a1,a2):
    P = 15 <= x <= 40
    Q = 21 <= x <=63
    A = a1 <= x <= a2
    return P <= ((Q and not  A) <= (not P))
ox = []
for x in 15,40,21,63:
    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))

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