Pi로 Pi 계산하기

원주율 안에 원주율 있다

by Joon

원주율의 소수 전개는 Random한가?


life of pi2.png


영화 라이프 오브 파이에 어린 시절의 주인공이 PI(원주율)를 외워서 칠판 가득 적는 장면이 나온다. 이와는 별 상관없지만 Pi 에 대해 궁금증이 하나 생겼다. Pi 의 소수 전개는 Random 한가? 즉 '소수점 이하 숫자들이 무작위로 분포하는가'라는 질문.


무작위성(Random) 을 엄밀하게 정의하는 방법이 있지만 간단하게 이해하자면, 어떤 수치 혹은 데이터를 zip 과 같은 압축 프로그램을 사용해 크기를 줄이려 해도 원래 크기보다 줄일수 없다는 것. 거기에 각 숫자의 분포가 횟수를 거듭할수록 비슷하게 나와야 한다는 (equaly distributed) 조건이 있다. 주사위를 엄청 많이 던지면 1에서 6까지 나오는 횟수가 비슷비슷하게 나온다. (큰 수의 법칙)


'Pi 의 소숫점 아래 숫자들도 이런 식의 주사위를 던지는 패턴과 같이 무작위하게 나올 것인가'라는 의문인데, 현재로서는 Random 한 것으로 여겨진다는게 정설인듯. 수학적으로 증명이 나오지는 않았지만 실제로 Pi 를 소수점 아래 60조까지 계산들했을때 (십진법 base 로) 각 숫자가 나타나는게 대략 10분의 1인 6조씩이라는 것.


이런 Random 한 성질은 Pi 뿐 아니라 다른 무리수 (Log 2, 자연상수 e, ...) 등에서도 성립하는 것으로 보인다. 증명되지 않았지만 일단 사실이라 전제하고, 그렇다면 이러한 무리수의 소수전개를 난수발생기 (Random number generator) 로 사용해도 되지 않는가 하는 의문이 있을수 있겠는데 실용적 이유에서 그렇게 하긴 어렵다. 그 이유는 간단히 말해 시간(계산 시간) 과 돈(기억 공간) 이 많이 들기 때문.


무리수의 소수점 이하 전개가 무한한 Random 전개를 따르므로, 찾고자 하는 모든 종류의 수치를 거기서 발견할수 있다. 칼 세이건의 소설 접촉(contact) 에서는 주인공이 원주율에서 원의 모양을 찾아내는 장면으로 끝이 났는데, 좀 더 나아가자면 1,2차 대전이 발발한 날이나 내 생일이라거나 기타 등등 모든 걸 그 안에서 찾을수 있다. 어찌 보면 의미없는 data mining 의 궁극이 아닐까 싶기도 하다. 예전 바이블 코드인가 혹세무민하는 책에서 미래의 예언이 기독교 성서에 숨어있다는 주장을 했더랬는데 비슷한 방식으로 원주율 코드란 책을 더 그럴듯하게 써볼수도 있겠다. (원주율 안에 다음주 로또 숫자가 숨어있다!)


Pi로 Pi 계산하는 실용적이지 않은 방법


몬테카를로 방식을 이용하면 난수를 이용해 Pi 값을 계산할수 있다. 그런데 앞서 쓴바와 같이 Pi의 소수점 이하 전개가 난수와 같은 성질이 있으므로 실용적이지 않지만 여기에서 난수를 가져올수 있다. 즉, Pi 의 소수점 이하 숫자들을 이용해서 다시 Pi 를 계산할수 있음. 뭔가 뱀이 꼬리를 물고 무는 느낌인데 Python 의 로고 이미지가 생각나기도 하고 재미삼아 코드를 간단히 만들어보았다. Google App Engine 에 code 를 올려뒀음. (이 Link 를 click 하면 코드 동작!)


python.JPG


결과로 나오는 Python RNC 는 라이브러리의 random() 함수를 이용한 것이고 Random Pi 는 원주율의 소수점 자리를 10자리씩 끊어 난수로 이용해서 계산한 것이다. Pi 값을 비슷하게 계산해주는 것을 볼수 있다.


실행시킬때마다 Python RNC 는 값이 달라지지만 Random PI 는 (같은 seed 를 사용하므로) 값이 바뀌지 않는다. 아래 code 에서 pi_string 은 ONE MILLION DIGITS OF PI에서 25,000 자리 정도를 끊어서 가져왔다. 아래 스크린샷에선 길이가 길어 적당히 자름. 좀 더 정밀하게 계산하는 코드를 만들수도 있겠으나 이건 전문가분들에게 맡김


py3.PNG


작가의 이전글세습 중산층 사회: 세습은 얼마나 오래 갈까