수평으로 1 마일 , 현재 위치에서 수직으로 B 마일 떨어진 지점으로 여행한다고 상상해보십시오 . 다른 말로하면, (0, 0)
지점 간 여행입니다 (a, b)
. 여행을 얼마나 끝내야합니까? 이것은 간단한 질문처럼 보이지만 대답은 당신이 누구에게 물어 느냐에 달려 있습니다. 당신이 까마귀있어, 당신이 여행 할 수 있다면 까마귀 파리로 , 거리 단지입니다 여행 유클리드 거리 에 (a, b)
. 이것은
sqrt(a^2 + b^2)
그러나 당신이 지루한 인간이라면, 먼 거리를 걷고 싶지 않기 때문에 택시를 타야합니다. 대부분의 택시는 일반적으로 도로에 머 무르려고하기 때문에 목적지를 향해 직선으로 운전하지 않습니다. 따라서 이동하게 될 실제 거리는 수직 거리와 수평 거리의 합입니다. 또는 공식은 다음과 같습니다.
abs(a) + abs(b)
이것을 Taxicab Distance 라고합니다 . 이 그림은이 둘의 차이점을 잘 보여줍니다.
여행을 (6, 6)
, 까마귀는 녹색 선에 비행 할 수 있으며, 이것은 거리 제공 6 * sqrt(2)
대략 8.49 또는. 택시는 빨간색, 파란색 또는 노란색 경로를 이용할 수 있지만 모두 12 개가 소요됩니다.
이것은 내가 묻는 실제 질문으로 이어집니다. 까마귀와 택시가 모두 지점 (0, 0)
에서 출발하여 지점 으로 이동하는 경우 (a, b)
, 택시의 경로는 얼마나 더 걸립니까? 더 많은 수학 용어로
2 차원 벡터가 주어지면 벡터의 norm2와 벡터의 norm1 사이의 차이를 결정하십시오.
이 질문에 대답하려면 가능한 가장 짧은 프로그램이나 기능을 작성해야합니다. 'a'와 'b'를 두 개의 개별 입력 또는 두 개의 항목 튜플로 선택할 수 있습니다. 합리적인 형식으로 입력 및 출력 할 수 있습니다. 차이가 정수가 아닌 경우 소수점 이하 두 자리까지 정확해야합니다.
항상 'a'와 'b'는 정수이고 둘 다 0이 아니라고 가정 할 수 있습니다.
평소와 같이 표준 허점이 적용되어 프로그램을 가능한 한 짧게 바이트 단위로 계산하려고 시도합니다.
코드가 어떻게 작동하는지에 대한 설명을 게시하고 바이트를 절약하는 데 사용되는 멋진 트릭을 보여주는 답변을지지합니다.
다음은 코드를 테스트 할 수있는 몇 가지 예입니다.
#input #output
3, 4 2
-3, 4 2
-3, -4 2
6, 6 3.51
42, 0 0
10, 10 5.86
3, 3 1.76
즐거운 골프 되세요! :)
10,10
가 5.86이어야 한다고 생각합니다 5.85786...
.