2010-02-07 2 views
2

Prob 명세서 : '-'무한대부터 (+) 무한대까지 'N'같은 반경 원이 그래프로 그려집니다. 전체 교차 영역을 찾으십시오. 두 개 이상의 원으로 덮여있는 그래프상의 영역.반경 'r'인 n 개의 원이 교차하는 영역

+3

이 질문의 프로그래밍 부분은 무엇입니까? 나에게 단순히 수학처럼 들린다. 어떤 언어로 이것을하고 있습니까? –

+0

위의 링크가 작동하지 않으면 pls는 다음을 참조하십시오. http://i.imagehost.org/0772/circles.png – avi

+0

네, 그게 더 수학입니다. 나는 C로 그것을하고있다 – avi

답변

2

먼저 수정 사항입니다. 이것은 원이 아닙니다. 그것들은 타원입니다 (원은 타원의 특별한 경우이고 a = b 인 경우입니다). 두 개의 타원의 교점을 계산할 수 있으므로 각 쌍을 검사해야하는 N 개의 타원이 있으므로 전체 연산은 O (n) (교차 연산이 무엇이든간에 곱함)입니다.

Intersection of EllipsesThe Area of Intersecting Ellipses을 살펴보십시오.

편집 : 원의 교차점은 쉬운 문제이지만 동일한 원칙을 따릅니다. Intersection Of Two CirclesCircle-Circle Intersection을 살펴보십시오.

+0

미안 해요, 내 이미지가 완벽하지 않습니다 ... 그 이미지의 모든 커브는 동그라미 반원을 나타냅니다. – avi

+1

두 개 이상 겹치는 경우를 다루어야하기 때문에 이것은 어렵습니다. – dmckee

1

코드를 작성하는 가장 쉬운 방법 (가장 빠르고 가장 좋은 것은 아닙니다)은 모든 원을 포함하는 경계 상자를 찾은 다음 수치 적 확률 적 방법을 사용하여 통합하는 것입니다.

이제 똑똑해지면서 원을 그룹화하고 개별적으로 상자에 넣을 수 있습니다. 즉 여러 경계 상자에서 작업 할 수 있습니다. 심지어 특정 특수 사례를 정확하게 처리합니다.

그러나 순수 확률 론적 방법은 구현하기가 쉽지만 (잠재적으로 느린) 아름다움이 있습니다.

"근사"(그러나 임의로 정확한 답변에 가까운) 답변을 기꺼이 사용하려는 경우에만 허용됩니다.

+0

거칠고 겸손한 정밀도가 좋은 경우에 적합합니다. * 확실히 * 겹치는 그룹을 탐지하고 각 그룹 주위에 테두리 상자를 그려야합니다. 그렇지 않으면 미친 양의 공백이있을 가능성이 있습니다. – dmckee

관련 문제