프로그래머는 수학자가 아니지만, 프로그래밍을 하다 보면 각종 공식들을 코드 내에 많이 내입해서 사용하게 된다.
대부분은 계산을 통해 값을 도출해서 사용하지만, Pi 는 상수로 많이 사용된다.
그런데 공교롭게도 Pi 는 '무한 소수' 이다.
3.141592653589793...
자릿수가 많을수록 정확한 값에 근접해 가는 것인데,
일반적으로 프로그래머들은 '부정확한' 것을 싫어하기에 이 파이 값 역시 가장 정확한 값을 참조하고 싶을 것이다.
따라서 각종 라이브러리나, 여러 방법들을 뒤져볼텐데.
미안하지만 정확한 파이 값 같은건 없다.
어떤 라이브러리를 쓰든 Pi 는 실제로 위와 같이 무식하게 선언해 주는것이 맞다.
물론, 라이브러리에서도 Pi 값을 따로 지원해 주는것도 있으나, 까 봤을땐
전부 이런식으로 선언되어 있다.
필자도 실제로 계산할때 보통 double 형으로 선언후 3.14159 정도 까지만 사용하고,
그 이상으론 대게 사용하지 않는다. (뭐 추가 특별 요청이 있지 않은이상, 수학적으로 한계인걸 우리가 어쩌겠냐;)
그나마 가장 유사한 근사값을 찾고싶다면
다코어 기반으로 원주율 값을 계산할 수 있는 프로그램인
y-cruncher 를 사용해 보는것도 도움이 될 것이다.
프로그램의 어쩔수 없는 설계 한계상
계산할 자릿수 만큼 메모리를 소모하는 단점이 있지만,
(이는 수학적 관점에서 극복 불가능한 한계점이다)
싱글코어만 사용하는 일반 프로그램에 비하면 매우 매우 빠른 속도를 보여준다
필자의 2700X CPU 기준으로도 고작 83.3 초 시간만에 10억자리수의 원주율을 도출 하는것이 가능했다.
뭐 이런게 실제로 필요할진 모르겠지만 글만 싸질러 놓으면 쓰는사람은 있을테니 남겨 둔다.
사용법은 필자의 H/W 블로그에 자세히 남겨 두었으니 참고 바란다.
'Miscellaneous' 카테고리의 다른 글
KTm 알뜰 모바일 APN 설정(핫스팟) (9) | 2021.02.21 |
---|---|
측지 좌표계, 세계 측지 좌표계란? (0) | 2021.02.01 |
벡터 좌표계 [직각 좌표계, 원주 좌표계, 구면 좌표계] 에 관하여 (0) | 2021.01.31 |
항공기 축 3가지 용어 (Heading, Pitch, Roll, Bank, Yaw) (0) | 2020.12.22 |
GOTO 를 쓰지 말라는 '개소리' (2) | 2020.07.08 |