@NailsInMyBack

Задание из егэ по информатике.Что не так в моём коде?

Задание №15:
62a86369d3e8f605590102.jpeg
Код:
res = []
for a1 in range(1, 101):
    for a2 in range(1, 101):
        fl = True
        for x in range(0, 1000):
            if (((a1 <= x <= a2) or (10 <= x <= 40)) or \
((5 <= x <= 15) <= (35 <= x <= 50))) == False:
                fl = False
                break
        if fl:
            res.append(a2 - a1)
print(min(res))

В ответе код выдаёт 4. Промежуток, длина которого наименьшая: [5;9]. Ответ на решу ЕГЭ: 5. И там промежуток [5:10). По сути, если учесть что границы промежутков целые числа, то это одно и то же. Честно говоря, не понимаю, как так получается.
  • Вопрос задан
  • 280 просмотров
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
[5;10) - это интервал, включающий 5, но не включающий 10.
Поскольку числовая прямая включает вещественные числа, то задавая интервал [5, 9] вы теряете числа большие 9, но меньшие 10.
А вообще, такие задачи решаются без программ.
Перепишем выражение так, чтобы остались только условия, соединённые через ИЛИ.
((x∈A)∨(x∈P))∨((x∈Q)→(x∈R)) ≡ (x∈A)∨(x∈P)∨(x∉Q)∨(x∈R)
Нам нужно найти отрезок, на котором не выполняются условия x∈P, x∉Q и x∈R.
Он вычисляется по формуле
(−∞, +∞) − P − ((−∞, +∞) − Q) − R = (−∞, +∞) − [10, 40] − ((−∞, +∞) − [5, 15]) − [35, 50] =
= (−∞, +∞) − [10, 40] − (−∞, 5) − (15, +∞) − [35, 50] = [5, 10).
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@denislysenko
отрезок [5, 9]
то есть, от пяти до девяти НО НЕ ВКЛЮЧАЯ ДЕВЯТКУ
ТО ЕСТЬ, НАШ ОТРЕЗОК ЭТО = LEN([5, 6, 7, 8])
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы