문제:

19세기 독일 수학자 헤르만 민코프스키는 비유클리드 기하학 중 택시 기하학을 고안했다. 택시 기하학에서 두 점 T1(x1,y1), T2(x2,y2) 사이의 거리는 다음과 같이 구할 수 있다.

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

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

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

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

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

입력:

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

출력:

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

풀이 방법:

수학적 지식을 활용하면 쉽게 풀 수 있는 문제이다. 일반 유클리드 기하학에서의 원의 넓이는 pi*r^2 (r은 반지름)이다. 하지만 비유클리드 기하학, 즉 택시 기하학에서의 원은 우리가 일반적으로 알고 있는 둥근 모양이 아니라 마름모 모양이 나오게 된다.
택시 기하학에서 중심이 원점이고 반지름이 1인 원은 (0,1) (1,0) (-1,0), (0,-1)의 끝 값을 가지고 (+-1/2, +-1/2)인 끝 값 사이의 중간 값을 가져서 이를 모두 이으면 마름모 모양이 나오게 된다. 마름모 모양의 넓이는 지름^2 *(1/2)로 구할 수 있으므로 이 문제에선 2*r^2(r은 반지름) 으로 넓이를 구할 수 있다.

ps)이 문제에서 math 모듈의 pi를 사용해서 문제를 풀었더니 오답을 받아서 직접 pi의 값을 길게 잡아서 계산했더니 맞았다.


1
2
3
n=int(input())
print('%.6f'% round(n*n*3.14159265358979323846,6))
print('%.6f'% (2*n*n))
cs


'Algorithm > Python' 카테고리의 다른 글

[BOJ]1931. 회의실배정  (0) 2019.07.13
[BOJ]1712. 손익분기점  (0) 2019.07.12
[BOJ]3053. 택시 기하학  (1) 2019.07.11
[BOJ]1904. 01타일  (0) 2019.07.10
[Programmers]Lv 3. 기지국 설치  (0) 2019.07.09
[Programmers]Lv 3. 섬 연결하기  (0) 2019.07.08
  1. 허밋퍼플 2021.10.27 22:07

    감사합니다!

+ Recent posts