задача-пересечение временных отрезков

Все, что вы хотели знать о программизме, но боялись спросить.
Ответить
Аватара пользователя
Algor
Маньяк
Сообщения: 1355
Зарегистрирован: 14 мар 2006, 01:38
Откуда: Самара->Ванкувер

задача-пересечение временных отрезков

Сообщение Algor »

кинте плз формулу как проверить есть ли пересечение между 2мя временными отрезками (d1-d2) и (d3-d4). не хочется закладывать проверку вариантов, наверняка что-то поэллегантнее есть.
Аватара пользователя
sz
Маньяк
Сообщения: 1266
Зарегистрирован: 17 фев 2003, 19:34

Re: задача-пересечение временных отрезков

Сообщение sz »

Или я чего-то не понял, или:
d3 <= d2 and d1 <= d4
Аватара пользователя
aissp
Маньяк
Сообщения: 2710
Зарегистрирован: 07 ноя 2005, 09:51

Re: задача-пересечение временных отрезков

Сообщение aissp »

ты прав - нет не понял :)

d3--------d1------------d2---------d4
d1--------d3------------d4---------d2
d1--------d3------------d2---------d4
d3--------d1------------d4---------d2

етто 4 варианта расположения, задача как проверить быстро? :)

перевод задачи на язык понятный в еа законченъ
Аватара пользователя
alpax
Графоман
Сообщения: 10522
Зарегистрирован: 04 мар 2003, 17:39
Откуда: Richmond, BC

Re: задача-пересечение временных отрезков

Сообщение alpax »

aissp писал(а):етто 4 варианта расположения, задача как проверить быстро? :)
Или я чего-то не понял, или проверка, предложенная sz, работает во всех этих случаях.
Аватара пользователя
aissp
Маньяк
Сообщения: 2710
Зарегистрирован: 07 ноя 2005, 09:51

Re: задача-пересечение временных отрезков

Сообщение aissp »

о блин ето я дятел
Аватара пользователя
Аман Ванкуверский
Маньяк
Сообщения: 2759
Зарегистрирован: 18 окт 2005, 01:10

Re: задача-пересечение временных отрезков

Сообщение Аман Ванкуверский »

причем в оффлайн разговоре выяснилось, что желательно уменьшить количество сравнений с 2-х до, хмм, меньшего количества
Аватара пользователя
sz
Маньяк
Сообщения: 1266
Зарегистрирован: 17 фев 2003, 19:34

Re: задача-пересечение временных отрезков

Сообщение sz »

Аман Ванкуверский писал(а):причем в оффлайн разговоре выяснилось, что желательно уменьшить количество сравнений с 2-х до, хмм, меньшего количества
Это тоже можно.
if( ( ( d2 - d3 ) & ( d4 - d1 ) ) >= 0 )
{
// пересекаются
}

А если знать, для чего это нужно, то можно и от этой проверки избавиться.
Но вообще-то, копеечная экономия. Неужели бранч предиктор не справляется?
Ответить