OpenFIPI 2.0

15

3

CCFE3B

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

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

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

29

from itertools import *

def f(x):
    p = 117 <= x <= 158 q = 129 <= x <= 180 a = a1 <= x <= a2
    return p <= ((q and (not a)) <= (not p))

Ox = [i/4 for i in range(116*4, 181*4)]

ans=[]

for a1, a2, in combinations(Ox, 2):
    if all(f(x) for x in Ox):
        ans.append(a2-a1)

print(min(ans))

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