반응형

문제

19세기 독일 수학자 헤르만 민코프스키는 비유클리드 기하학 중 택시 기하학을 고안했다.

택시 기하학에서 두 점 T1(x1,y1), T2(x2,y2) 사이의 거리는 다음과 같이 구할 수 있다.

D(T1,T2) = |x1-x2| + |y1-y2|

두 점 사이의 거리를 제외한 나머지 정의는 유클리드 기하학에서의 정의와 같다.

따라서 택시 기하학에서 원의 정의는 유클리드 기하학에서 원의 정의와 같다.

원: 평면 상의 어떤 점에서 거리가 일정한 점들의 집합

반지름 R이 주어졌을 때, 유클리드 기하학에서 원의 넓이와, 택시 기하학에서 원의 넓이를 구하는 프로그램을 작성하시오.

입력

첫째 줄에 반지름 R이 주어진다. R은 10,000보다 작거나 같은 자연수이다.

출력

첫째 줄에는 유클리드 기하학에서 반지름이 R인 원의 넓이를, 둘째 줄에는 택시 기하학에서 반지름이 R인 원의 넓이를 출력한다. 정답과의 오차는 0.0001까지 허용한다.

 

해설

택시 기하학에서의 두 점 사이의 거리는

맨해튼 거리(Manhattan Distance)라고도 부른다.

맨해튼 거리의 원은 우리가 생각하는 동그라미 모양의 원이 아니다.

원의 정의를 이용하여 선을 그리면 기울어진 정 사각형 모양이 그려지는데, 원의 정의와는 일치한다.

원: 평면 상의 어떤 점에서 거리가 일정한 점들의 집합

즉, 거리의 정의가 달라지면서 원의 모양도 변하게 되는 것이다.

 

정리를 해보면

원의 넓이는 

유클리드계에서의 원의 넓이 = PI * r^2

맨해튼 거리를 이용한 원의 넓이 = 한변의 길이가 2 *r 인 직사각형의 넓이 = ( 2 *r)^2 = 2 * r ^2

이 된다.

 

코드

1
2
3
4
5
6
7
8
9
10
11
12
13
var fs = require('fs');
var input = fs.readFileSync('/dev/stdin').toString();
 
const PI = Math.PI
 
const r = parseInt(input);
 
// 원의 넓이
console.log((PI * r * r).toFixed(6))
 
// 택시 기하학, 맨하튼 거리 원의 넓이
console.log((2 * r * r).toFixed(6))
 
cs

 

반응형

+ Recent posts