Задача к ЕГЭ по информатике на тему «отрезки» №11

На числовой прямой даны три отрезка: P = [8;34]  , Q = [4;16]  и K = [33;54]  . Какова наименьшая длина отрезка    A  , при котором формула

((x ∈ P ) → (x ∈ Q ))∨(¬(x ∈ A) → (x ∈ K ))

тождественно истинна, то есть принимает значение 1 при любом значении переменной х?

Решение руками

Первым шагом раскроем импликацию и отрицание:

(x∈∕P )∨ (x ∈ Q)∨ (x ∈ A )∨ (x ∈ K)

Для наглядности изобразим известную часть на числовой прямой:

PIC

Отсюда видно, что «перекрыты» все области числовой прямой, кроме отрезка [16;33]  . Значит эту область должен «перекрывать» отрезок A  . Тогда наименьшая длина отрезка A  : 33 − 16 = 17  .

Решение программой

def inn(x, A):
    return A[0] <= x <= A[1]

def f(x, A):
    P = [8, 34]
    Q = [4, 16]
    K = [33, 54]
    return ((inn(x, P) <= inn(x, Q)) or ((not inn(x, A)) <= inn(x, K)))

borders = [0, 0]
minim = 100000
k = 5
for a in range(0, 80 * k):
    for b in range(a, 80 * k):
        A = [a / k, b / k]
        good = True
        for x in range(0, 100 * k):
            if not f(x/k, A):
                good = False
                break
        if good:
            if A[1] - A[0] <= minim:
                minim = A[1] - A[0]
                borders = A.copy()
print(minim)
print(borders)

Программа вывела длину 16.59  и границы отрезка [16.2,32.8]  , значит нам подходит отрезок (16,33)  , но из-за выколотой левой и правой границ программа показывает длину немного меньше реальной. При увеличении параметра      k  можно добиться приближения длины к 17  .

Ответ: 17
Оцените статью
Я решу все!