
На числовой прямой даны два отрезка:
A) → (x
P)) → ((x
A) → (x
Q))
тождественно истинна, то есть принимает
Решение. Преобразуем данное выражение:
(¬ (x A) → (x
P)) → ((x
A) → (x
Q))
((x A) ∨ (x
P)) → ((x
A) ∨ (x
Q))
¬((x A) ∨ (x
P)) ∨ ((x
A) ∨ (x
Q))
(x A) ∧ (x
P) ∨ (x
A) ∨ (x
Q)
(x A) ∨ (x
Q).
Таким образом, либо
Ответ: 15.
Примечание.
О длине отрезка написано в примечании к задаче 11119.
Приведём решение Ивана Гладких на языке Python.
P = [i for i in range(25, 51)]
Q = [i for i in range(32, 48)]
m = 0
for Amin in range(0, 60):
for Amax in range(Amin + 1, 60):
check = 1
A = [i for i in range(Amin, Amax)]
for x in range(0, 101):
f = ((not(x in A)) <= (x in P)) <= ((x in A) <= (x in Q))
if not f:
check = 0
break
if check == 1:
m = max(m,Amax - Amin)
print(m - 1)
Приведём другое решение на языке Python.
maxA = 0
for startA in 25, 32, 47, 50:
for endA in 25, 32, 47, 50:
if all([(((not (startA < x < endA)) <= (25 < x< 50)) <= ((startA < x < endA) <= (32 < x < 47))) for x in [20, 27, 35, 48, 51]]):
if endA - startA > maxA:
maxA = endA - startA
print(maxA)
Приведём решение Виктории Смирновой на языке Python.
P = [i for i in range(25,51)]
Q = [i for i in range(32,48)]
A = [i for i in range(-1000,1000)]
for x in range(-1000,1000):
if (((x not in A) <= (x in P)) <= ((x in A) <= (x in Q))) == 0:
A.remove(x)
print(len(A) - 1)
Приведём решение Льва Андреева на языке Python.
def f(x, a1, a2):
p = 25 <= x <= 50
q = 32 <= x <= 47
a = a1 <= x <= a2
return ((not (a)) <= (p)) <= ((a) <= (q))
nums = [i for x in [25,50,32,47] for i in [x-0.1, x, x+0.1]]
ans = []
for a1 in nums:
for a2 in nums:
if (a1 <= a2) and all([f(x, a1, a2) for x in nums]):
ans += [a2-a1]
print(round(max(ans)))
PDF-версии: