2014-11-10 1 views
0

드럼을 특정 위치에 배치하고 싶지만 놀이 공원 관람차를 예로 사용하면 더 좋을 수도 있습니다. 이 검색 방법에 이름이 있다고 확신합니까?위치 검색 알고리즘

100 개의 의자가있는 관람차가 회전하고 무작위로 멈추고 의자 번호 90이 바닥에 있고 모든 승객이 나옵니다. 이제 10 번 의자를 가져와 10 번 좌석 승객이 나올 수 있도록 10 번 의자의 최단 거리를 계산하는 데 도움이되는 알고리즘이 올바른 방향으로 관람차를 회전시킵니다. 의자 10에 닿을 수의 양?

+0

당신이 최단 거리 무엇을 의미합니까 :

그래서, 알고리즘은 다음과 같이 보일 것? –

+0

올바른 방향? 단지 한 방향 일뿐입니다! NT일까요? – indian

+0

사용 된 데이터 구조에 대한 자세한 정보를 제공해주십시오. – Codor

답변

1
의 의자가 시계 방향으로 번호가 있다고 가정하자

N 의자 (귀하의 예제에서 100)의 수입니다.

또한 stopped을 휠이 멈춘 의자의 번호로 지정하십시오.

desired은 연락하려는 의자 번호입니다.

int distClockwise = desired - stopped; 
if(distClockwise < 0) { 
    distClockwise += N; 
} 

int distCounterClockwise = N - distClockwise; 

if(distClockwise < distCounterClockwise) { 
    //spin the wheel clockwise 
} 
else { 
    //spin the wheel counterclockwise 
} 
+0

이 코드는 문서 자체를 다루고 있습니다. 그러나 여기에 대한 생각은 양 방향이 원하는 의자에 도달해야하는 거리를 계산 한 다음 가장 짧은 방향을 선택하는 것입니다. – Kaganar

+0

귀하의 의견과 링크를 보내 주신 모든 분들께 감사드립니다. GoogleHireMe, 귀하의 정확성, Kaganar는 "여기에서 아이디어는 양 방향이 원하는 의자에 도착한 후 가장 짧은 방향을 선택해야 하는지를 계산하는 것입니다." 작성된대로 코드가 모든 가능한 위치에 대해 작동하지 않으며 올바른 거리를 얻는 것처럼 보입니다 (이동해야하는 의자의 수는 많지만 방향은 아닙니다). – martin

+0

누구나 모든 조합에 대해이 작업을 수행 할 수식을 계산 했습니까? 나는 거기에 일종의이지만 고군분투하고있다. – martin