이전에 물어 보았을 것 같은데 확신하지만, 나는 그것을 발견하지 못했습니다. 단지 관련된, 그러나 더 어려운 질문 만하고 있습니다.겹치는 간격을 찾는 깔끔한 알고리즘은 무엇입니까?
A C B D
|------*---|-----+----|-*---+---|----------|
0 10 20 30 40
그래서 예
, AB = {7, 21}
및 CD = {16,26}
:
이 같은 두 줄을 대표하는 네 개의 점을 가지고있다. (선들은 서로 어떤 관계에있을 수 있고 어떤 크기로도 될 수 있습니다.) 나는 그것들이 겹치지 않는지, 그리고 얼마나 많은지에 대해서 알고 싶습니다. (이 예제에서 대답은 5가 될 것입니다.) 현재의 솔루션에는 복잡한 if/then 단계가 포함되어 있습니다. 좋은 산술적 솔루션이 있다고 생각합니다. 거기 있니?
(. 분명히, PS 정말, 내가 경계 박스 교차로를하고 있어요,하지만 난 하나 개의 차원에서 그것을 얻을 수 있다면, 다른 하나는 동일합니다)
내가, 중복의 양을 원하지 단지 그들이 할 수 있는지 여부. 그래도 고마워. – sprugman
@sprugman : 교차로의 양을 계산하기 위해 Mark의 코드를 외삽하는 것은 꽤 쉽습니다. –
그는 내게 한 짓인데, Matt. 고마워, 마크! :) – sprugman