OpenFIPI 2.0
15
3
B3B99C
На числовой прямой даны два отрезка: P = [15; 40] и Q = [21; 63]. Укажите наименьшую возможную длину такого отрезка A, для которого логическое выражение
(x ∈ P) → (((x ∈ Q) /\ ¬(x ∈ A)) → ¬(x ∈ P))
истинно (т.е. принимает значение 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