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

На числовой прямой даны два отрезка: P = [15,35]  и Q = [10,60]  . Найдите наибольшую возможную длину отрезка     A  , при котором формула

(x ∈ A)∧ ((x ∈ Q) ≡ (x ∈ P))

тождественно ложна, то есть принимает значение 0  при любых x.

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

Формула (x ∈ Q) ≡ (x ∈ P)  будет истинной в следующих случаях:

1. Если x ∈ P ∩ Q = [15,35]  .

2. Если x < 10  или x > 60  » class=»math» src=»/images/inform/reshen/reshen-2932-4.svg» width=»auto»>. </p>
<p class= Формула будет ложной:

1. Для x < 10  : оба условия ложны.

2. Для 10 < x < 15  : истинно только для Q  .

3. Для 15 < x < 35  : истинно для обоих.

4. Для 35 < x < 60  : истинно только для Q  .

5. Для x > 60  » class=»math» src=»/images/inform/reshen/reshen-2932-11.svg» width=»auto»>: оба условия ложны. </p>
<p class= Чтобы формула была тождественно ложной, отрезок A  должен быть таким, чтобы он не пересекался с интервалом, где формула истинна: [15,35]  .

Таким образом, возможные значения для отрезка A  :

— Между 10 и 15 и между 35 и 60.

Наибольшая длина отрезка:

— Между 10 и 15 (длина = 5).

— Между 35 и 60 (длина = 25).

Наибольшая возможная длина отрезка:

L = 25.

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

p = [i/4 for i in range(15*4, 36*4)] # задаем отрезок p, добавляя дробные числа
q = [i/4 for i in range(10*4, 61*4)] # задаем отрезок q, добавляя дробные числа
mx = 0
for a1 in range(1, 100): # перебираем начало отрезка а
    for a2 in range(a1 + 1, 101): # перебираем конец отрезка а
        c = 0 # флаг, который будет показывать при всех ли х для текущего отрезка а выражение было ложным
        a = [i/4 for i in range(a1*4, a2*4)] # формируем отрезок а, добавляя дробные числа
        for x in range(1, 500): # перебираем значения x
            # если при текущем x выражение истинно
            if (((x/4) in a) and (((x/4) in q) == ((x/4) in p))):
                c = 1 # меняем значение флага
                # и сбрасываем цикл, переходим к следующему отрезку а,
                # так как для данного отрезка а выражение не тождественно ложно
                break
        if c == 0: # если значение флага не менялось, значит, при любом х при данном отрезке а выражение было ложным
            mx = max(len(a)/4,mx) # вычисляем максимальную длину отрезка
print(mx)

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