2015-02-01 5 views
2

이 문제를 오랫동안 파악하지 못했습니다. 우리가 항상 (0,0)의 원점에있는 미리 정의 된 루트를 가진 2D 평면을 가지고 있다고 가정 해 봅시다. 이 2D 평면에는 얼마나 큰지에 대한 제한이 없습니다.그래프에서 가장 가까운 점에서 시작점까지의 점

사용자가이 그래프에서 유한 한 수의 점을 입력 할 수 있다고 가정 해 봅시다 (각 점은이 평면에있을 수 있습니다). 이 점은 S0, S1, ... Sn으로 정의되며 사용자는이 점의 각각의 X, Y 좌표 위치를 제공합니다.

루트 지점에서 그래프의 모든 지점까지 최단 경로 길이를 찾고 싶습니다.

무엇을 의미합니까? : 최단 경로가 6으로 결정했다고 가정 해 봅시다. 이는 루트 지점에서 지점 S0까지의 경로 길이가 6이고 경로 길이가

내 그림 참조 : 부인을 내 다이어그램의 목적이다 S1 루트가 6 인, 주석 루트에서 경로 길이 내가이 문제를 해결하려고 한 일을 6

입니다 내 생각의 과정을 보여줘. 이 문제에 어떻게 접근하고 싶은지를 나타내는 것이 아닙니다. enter image description here

이 예제에서는 모든 점이 균등하게 이격되어 있다고 가정합니다. 내가하려고 한 것은 포인트 사이의 중간 점을 찾는 것입니다. 예를 들어, S0와 S1 사이의 중간 점은 A입니다. S2와 S3 사이의 중간 점은 B입니다. A와 B 사이의 중간 점은 C입니다. 루트 점은 C까지 이어지며 그래프의 모든 점과 동일한 거리를 이동할 수 있습니다. 그래프에서 루트에서 ANY 지점까지의 최단 경로 길이는이 예제에서 4입니다. 즉, 루트에서 S0로가는 가장 짧은 방법은 루트에서 S1까지 얻을 수있는 가장 짧은 방법과 같습니다. 루트에서 S1까지 얻을 수있는 가장 짧은 방법은 해당하는 가장 짧은 방법과 같습니다. 루트에서 S3까지

문제는이 방법이 항상 작동하지 않는다는 것입니다. 특히 비행기를 가로 질러 무작위로 흩어져있는 비 루트 지점이 홀수 일 때 더욱 그렇습니다. 알고리즘을 찾을 수 없습니다. 누구든지 나를위한 포인터/팁이 있습니까?

+1

내가 꽤 질문을 이해하지 √10입니다. 사용자는 점, S0, S1 등을 정의하지만 선의 출처를 이해하지 못합니다. 두 점 사이의 최단 경로는 두 점 사이의 직선입니다. 내가 뭘 놓치고 있니? A, B 및 C는 완전히 임의적으로 보입니다. –

+0

@ErikPhilips 나는 당신의 혼란을 이해하지 못합니다. 선은 경로 길이를 더 잘 나타 내기 위해 그리는 경로를 나타냅니다. S0, S1, S2 및 S3은 그래프상의 점이고 A, B 및 C는 중간 점입니다. –

+0

그렇다면 왜 그런 것을 만드는지, 예에서 S0와 S2 사이의 최단 거리는 그 사이의 직선이됩니다. 왜 중간 점에 귀찮았습니까? (루트에서 S0 및 S3까지의 A, B 및 C가없는 최단 거리는 90도 각도를 가정 할 때 2mm입니다). –

답변

-1

Here is the formula 두 지점 사이의 거리를 결정합니다. 모든 사용자 지정 점 (s0, s1 ... sN)에 대한 루트에서 거리를 계산하고 결과 집합에서 최소값을 얻으십시오.

+0

이 질문에 어떻게 대답합니까? 그는 최소한의 가치를 찾고 있지 않습니다. –

+0

위의 읽어보십시오 – hyades

1

그래프에서 루트에서 ANY 지점까지의 최단 경로 길이는이 예제에서 4입니다. 즉, 루트에서 S0로가는 가장 짧은 방법은 루트에서 S1까지 얻을 수있는 가장 짧은 방법과 같습니다. 루트에서 S1까지 얻을 수있는 가장 짧은 방법은 해당하는 가장 짧은 방법과 같습니다. 루트에서 S3으로.

그들은 90 개도 할 필요가 없습니다.

은 그래서 당신이 정말로 말하고있는 것은 :

나는 모든 등거리 루트에있는 각 사용자 입력 지점과 끝에서 시작 라인을 만들

.

루트에서 가장 먼 지점을 찾아 거리 (X)를 계산하십시오. X와 같은 루트와 같은 거리에있는 모든 점에 선은 직선입니다. 다른 모든 점에는 거리가 X 인 임의의 곡선 선을 만듭니다.

예 (선은 거리에 비례하지 않습니다.

equidistant lines

+0

에릭,이 실제로 꽤 영리합니다. 의견을 주셔서 감사합니다. 나는 이것을 생각하지 않았다는 것을 믿을 수 없다. 내가 그것에 관해 생각할 때, 그것은 꽤 명백하게 들린다. 선들이 똑바로되어야한다면 어떨까요? 대답은 어떻게 바뀔까요? –

+0

또한, "90도 각도 일 필요는 없습니다"라는 말은 그들이 여전히 직선 일 필요가 있음을 의미하지만 어떤 경사도 될 수 있음을 의미합니다. 당신의 방법은 문제를 해결하지만, 내가 계획 한 방식대로는 아닙니다. 애매한 점 죄송합니다. –

+0

더 명확히하기 위해 선은 직선 일 필요가 있습니다. 그들은 어떤 각을 형성 할 수 있습니다. 의미, 그들은 90도 각도 일 필요는 없지만 될 수 있습니다. –

0

나는 가장 먼 지점으로 원점에서 연결이 직선해야한다는 에릭 필립스에 동의하는 경향이있다. 여러 포인트가 가장 큰 명예를 공유하면 모두 직선을 ​​얻습니다. 나머지 점에 대해서는 기존 직선에 연결하는 것이 중요합니다.

하는 샘플 문제에이 기술 및 각 지점에 원점에서의 거리를 적용하는 것은 ≈ 3.16

enter image description here

관련 문제