Автор | Сообщение |
|
Отправлено: 23.12.21 00:23. Заголовок: Задача №4602
Ниже представлен мой код на питоне, который решает задачу перебором возможных вариантов отрезков. Самый максимальный отрезок: [31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57] В нем 27 элементов, однако его длина = 26 (длина отрезка - это разница конечной и начальной координаты). В ответе не 26, а 27. Почему? p = [j for j in range(20, 31)] q = [j for j in range(25, 58)] max_a = [] for start in range(-70, 71): for end in range(start + 1, 71): a = [j for j in range(start, end + 1)] s = 0 for x in range(-100, 100): s += ((x in a) and ((x in q) <= (x in p))) if s == 0: if len(a) > len(max_a): max_a = a.copy() print(max_a)
|
|
|
Ответов - 7
[только новые]
|
|
|
| Администратор
|
Сообщение: 3125
|
|
Отправлено: 23.12.21 08:29. Заголовок: Задача 4602 совсем д..
Задача 4602 совсем другая. Уточните, пожалуйста условие. Не рекомендую решать такие задачи программой. Вы пройдете по всем граблям, связанным с дискретизацией непрерывных отрезков.
|
|
|
|
Отправлено: 23.12.21 11:01. Заголовок: 4601
Видимо, имелась виду задачам 4601, но я тоже к слову не понимаю почему так.
|
|
|
|
| Администратор
|
Сообщение: 3127
|
|
Отправлено: 23.12.21 11:11. Заголовок: По 4601: 1) A*(not Q..
По 4601: 1) A*(not(Q) + P) = 0 2) not(A) + Q*not(P) = 1 3) Amax = Q*not(P) = (30; 57] Все.
|
|
|
|
Отправлено: 24.01.22 20:28. Заголовок: Тоже вопрос по 4601 ..
Тоже вопрос по 4601 Если мы подставим число 30 в исходную формулу, то получится истина. Ответ [31; 57] Q*not(P) - это же [31; 57]
|
|
|
|
| Администратор
|
Сообщение: 3228
|
|
Отправлено: 24.01.22 20:34. Заголовок: Nadin пишет: Q*not(P..
Nadin пишет: цитата: | Q*not(P) - это же [31; 57] |
|
Если написать совсем правильно, то (30; 57] (исключая левую границу). И длина этого отрезка - 57 - 30 = 27. В таких задачах спрашивается именно про длину отрезка, чтобы не ломать голову по поводу вхождения или невхождения его концов в искомое множество.
|
|
|
|
Отправлено: 24.01.22 21:52. Заголовок: А, например, в номер..
А, например, в номере 4769 получается ответ [1; 98] и длина равна 97. Получается, что включительно, что нет, все равно вычитаем из правой границы левую?
|
|
|
|
| Администратор
|
Сообщение: 3229
|
|
Отправлено: 24.01.22 22:22. Заголовок: Nadin пишет: Получае..
Nadin пишет: цитата: | Получается, что включительно, что нет, все равно вычитаем из правой границы левую? |
|
Именно так. Сложнее, если два отрезка получаются. Там зависит от задачи: либо нужно выбрать наибольший, либо перекрыть оба одним отрезком А.
|
|
|
|