본문 바로가기

Algorithm

[C code] 택시 기하학 / M_PI

반응형

"

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

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

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

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

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

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

"

 

원점을 중심으로 택시 기하학에서의 원은 결국,

(1,0) (0,1) (-1,0) (0,-1) 네 점을 지나는 네 직선으로 이루어진 사각혁이 된다.

결국 원의 넓이는 (2R)^2 * (1/2) 이고, 2 * R^2 이다.

 

- https://www.acmicpc.net/problem/3053

 


 

유클리드 기하학에서의 원의 넓이를 코드로 구현할 때

원주율을 필연적으로 구현하게 되는데, 다음과 같이 크게 두 가지 방법이 있다.

 

1. math.h 라이브러리에서 M_PI 사용 (몇 컴파일러에서는 X)

#include <math.h>

~

wide = M_PI * R * R;

 

2. 상수로 설정

#define PI 3.141592653589793238462643383279502884197169399375105820974944
//필요한 수까지 설정하면 된다

or

const double PI = 3.141592653589793238462643383279502884197169399375105820974944
반응형