구글은 파섹 계산을 못 한다
Daniel Drucker가 알려준 구글 계산기의 재미있는 버그가 있다. 파섹을 넣고 계산을 하면 값이 틀리게 나온다는 것이다.
지구가 태양 주위를 도는 동안 가까운 별들은 멀리 있는 배경 별들을 기준으로 앞뒤로 흔들리는 것처럼 보인다. 별이 가까울수록 이 효과는 더 크게 나타난다. 어느 눈으로 보느냐에 따라 가까운 물체가 먼 물체에 대해 상대적으로 움직이는 것과 비슷하다고 생각하면 된다. 예를 들어 손가락을 세우고 오른눈으로 보면 이렇게 보인다:
하지만 왼눈으로 보면 이렇게 보인다:
지구가 태양 주위를 절반 도는 동안(두 "천문단위"만큼 떨어진 거리) 별이 2초각(1초각은 1도의 1/3600)만큼 움직이면, 그 별이 1파섹 떨어져 있다고 한다.
이렇게 하면 두 변이 나머지 한 변보다 훨씬 긴 삼각형이 만들어지는데, 각도를 라디안으로 재기만 하면 작은 각도 근사를 써서 1파섹은 1초각당 1AU라고 말할 수 있다.
[1 parsec in meters]라고 검색하면 3e16미터라는 정확한 답이 나온다:
대화형 단위 변환기는 항상 정확한 것 같지만, 1을 곱하는 것과 같은 간단한 연산만 해도 다른 처리 경로가 실행되면서 5e14미터라는 틀린 값을 내놓는다:
57.3배나 차이가 나는데, 아주 수상한 숫자다! 라디안 하나에 들어가는 도(degree)의 수(180 / PI)와 같기 때문이다. 파섹의 정의인 1초각당 1AU를 그대로 쓰되 초각을 라디안이 아니라 도 단위로 계산했을 때 나오는 값이 바로 이것이다.
예를 들어 1 au / 1 arcsecond in meters를 검색하면 5e14가 나온다:
그런데 이를 파섹 단위로 물어보면 1파섹이라고 답한다:
둘 중 하나라면 어떻게든 말이 된다고 할 수 있겠지만, 둘 다 동시에 맞을 수는 없다! 마찬가지로 [1 meter / 1 degree]를 검색하면 "1 meter"가 나온다:
하지만 [1 meter / 1 radian] 역시 마찬가지다:
내 생각에 이 버그는 아마 각도를 문맥에 따라 영리하게 해석하려다 생긴 것 같다. 상황에 맞게 도(degree)나 라디안을 골라 쓰려고 한 것이다. 혹은 도와 라디안이 무차원 단위라서 혼동한 것일 수도 있다. 어쨌든 "parsec"이 "도 단위 초각으로 나눈 AU"로 전개되면서 57배가 어긋나 있다.
파섹은 내 일상에서 쓸 일이 거의 없는 거리 단위지만, 이 버그 때문에 곤란을 겪은 천문학자가 없기를 바란다!
글을 무작위로 읽기







