압축률이 100%에 가까운 원주율 파일 시스템
(github.com)
원주율의 소수점은 몇진법으로 쓰든 모든 숫자가 동일한 비율로 나타나는 normal number 라고 강력하게 추정됩니다.
normal number 라면 가능한 모든 숫자 조합을 포함하는 disjunctive sequence 라는게 증명돼 있습니다.
즉, 바이너리로 표현된 모든 컴퓨터 프로그램은 원주율 소수점 어딘가에 존재한다는 것이죠. 원주율 소수점의 위치만 찾아내면, 모든 정보를 저장하고 복원할 수 있게됩니다.
400줄 텍스트 파일을 저장하는데 5분정도 시간이 걸린다는데, 제작자는 무어의 법칙을 믿으면 된다고... 합니다.
예를 들면 01010 이런 데이터가 있다고 하면 원주율로 01010과 맞는 위치가 있다는 걸로 이해가 되네요. 그래서 위치 정보만 저장하면 된다는 거 같은데..
최근 실리콘밸리 라는 드라마를 보고 있는데 압축률 알고리즘을 사용한 뉴 인터넷이 나오더라고요. 만약 압축률 100%가까운 원주율 파일 시스템이 활용할 수 있을정도로 기술이 발전한다면 뉴 인터넷이 정말 나오려나요?
혹시 누군가 조금만 쉽게 풀어서 설명해주실 수 있나요? 원주율이 normal number인 것과 파일을 저장할 때 압축률이 100퍼센트인 것과 무슨 관련인지 잘 모르겠습니다.
normal number라 함은, 가령 원주율이 5진수로 표현했을 때 소수점 아래 1000자리 까지 늘여놓으면 0,1,2,3,4 가 각각 200개에 근접하다는 말이지요?
거기에서 더 나아가지 못하고 있습니다 ㅠ.
제가 이해한것은 다음과 같습니다.
normal number 이면 모든 가능한 숫자조합들이 한번 이상 나온다는게 증명돼 있습니다. 0110001... 이런 바이너리 넘버들도 전부 원주율 소수점 어딘가에 있을테구요. 그런 소수점의 위치만 기억한다면, 파일을 저장장치에 직접 저장할 필요 없이 파일을 복원해 낼 수 있습니다. 원주율 값은 수학 상수이므로, 저장장치에 저장해둘 필요없이 그때그때마다 원주율 값을 계산해서 사용하구요.
원주율 값을 스토리지에 저장해놓고 쓰는게 아니라, 그때그때마다 원주율 값을 계산해서 쓰는것 같습니다. 그래서 100% 압축이라고 하는듯 하네요
위키피디아에 압축률의 정의[1]를 찾아보니 일반적으로 생각하는 계산법이 아닌 것 같더군요.
이거에 대해 제가 옛날에 쓴 글[2]이 있습니다. 오래 됐군요. ㅎㅎ
[1] https://en.wikipedia.org/wiki/Data_compression_ratio
[2] https://wp.me/pPGG8-41E
압축률의 정의가 압축전 용량/압축후 용량 인걸 저도 처음알았네요. 깃허브에 100% compression 이라 적혀있길래 제가 착각했군요..
굉장히 재미있는 이야기네옄ㅋㅋㅋㅋㅋㅋㅋ 이제 위법 파이의 시대인가...
1. 위법적인 컨텐츠를 저걸로 압축한다
2. 저걸로 나올 어딘가에 있을 파이값의 위치를 알려준다
3. 위법!
소수점 계산을 첫자리 부터가 아닌 특정 자릿수부터 계산하는걸 스피곳 알고리즘이라 부르는데, pifs 의 경우 Bailey-Borwein-Plouffe 공식을 이용해서 원주율의 자릿수를 계산한다고 합니다.
https://ko.wikipedia.org/wiki/스피곳_알고리즘