현재 진행 중인 사용자 토론이 있습니다.
r5 vs r6 | ||
---|---|---|
... | ... | |
49 | 49 | 이 걱정은 미래의 나에게 넘기기로 하고, 난 이만 생각을 마치기로 하였다. |
50 | 50 | |
51 | 51 | ==== ==== ==== ==== ==== === |
52 | ||
53 | 이 문서에 무슨 내용을 작성할 지 정했다. |
|
54 | ||
55 | 현재 취미로 만들고 있는 토이 프로젝트의 프로그램 코드를 해설하는 내용을 전개할 예정이다. |
|
56 | ||
57 | 이 위키는 문서를 어떻게 작성하는 지 연습하고 위키 엔진의 다양한 시스템을 알아보는 목적으로 만들었다. |
|
58 | 그러한 목적에 부합하도록 최대한 위키에 대한 시스템과 마크다운 문법을 배워갈 것이다. |
|
59 | ||
60 | 현재 만들고 있는 프로젝트의 개요는 아래와 같다. |
|
61 | ||
62 | 프로그래밍 언어에서 아주 큰 정수 타입을 다룰 때 이용하기 위해 Bigint(Big Integer)라 불리우는 객체가 존재한다. |
|
63 | 이러한 Bigint의 특징은 시스템의 메모리가 허용하는 한 무한에 가까운 정수를 다룰 수 있다는 점이다. |
|
64 | 나중에 관련하여 임의 정밀도(Arbitrary Precision)에 대한 개념도 이 문서에 정리해볼 예정이다. |
|
65 | ||
66 | 흔히 Python이라는 언어의 정수 타입이 Bigint라 알고 있을 것이다. 또한 그렇게 널리 알려져 있다. |
|
67 | 하지만 Python의 Bigint는 정말 큰 수를 다룰 수 있을 지 언정, 진정한 의미에서 임의 정밀도를 구현하지는 못했다. |
|
68 | 엄밀히 따지면 Pyhton은 최대 효율을 끌어내기 위해 임의 정밀도를 일부로 구현하지 않은 느낌이라 못한 것은 아니다. |
|
69 | ||
70 | 아무튼 이러한 Bigint 객체를 통해 임의 정밀도를 구현하고 무한에 가까운 정수를 연산 가능하게 만든 다음, |
|
71 | 정보 이론에서 정의된 정보 엔트로피의 한계까지 데이터를 무손실 압축할 수 있는 알고리듬인 |
|
72 | 산술 부호화(Arithmetic Code)를 구현하는 프로그램을 제작할 예정이다. 허프먼 부호화(Huffman Code)는 다루지 않는다. |
|
73 | ||
74 | 이를 구현하기 위한 코드를 위키 문서에 부합하도록 작성하는 것이 나의 목표가 되었다. |
|
75 | ||
76 | ==== ==== ==== ==== ==== === |