проверка пересечения диапазонов

otvertka07

напишите формулу плиз =)

Helga87

[a, b] и [c,d] пересекаются тогда и только тогда, когда
max(b, d) - min(a, c) < (b - a) + (c - d) (ну, или <=, если угодно)

sirius

(a1, a2) - первый
(b1, b2) - второй
пересекаются, если mod(a1+a2-b1-b2) < mod(a1-a2+b1-b2)

otvertka07

не, чото слишком сложная, можно сделать, используя только логические операции && и || и операции сравнения.
Да, и еще принять в условии, что a1 < a2 и b1 < b2

sirius

a2 > b1 && a1 < b2

artimon

!(b2 < a1 || a2 < b1)

otvertka07

спасибо, просто хотел убедиться, что не ошибся, торможу к концу рабочего дня =)

rosali


(a1, a2) - первый
(b1, b2) - второй
вообще кошерным считается представление [a1,a2 [b1,b2).
К тому же формула (a2>b1) && (a1<b2) именно в этом случае и верна.
Оставить комментарий
Имя или ник:
Комментарий: