오늘의 발명 실마리: 무리수 소수점 이하를 매핑 테이블로 이용한 압축 알고리듬
28년 전쯤엔가 일기에 썼던 내용 다시 쓴다. 무리수의 소수점 이하를 매핑 테이블로 이용한 압축 알고리듬은 쉬운 아이디어니까 누가 이미 만들어놓지 않았을까?
오늘 다시 생각난 김에 챗지피티에 물었다.
무리수 소수점 이하를 매핑 테이블로 이용한 압축 알고리즘은 무리수의 소수점 이하 값을 일정한 규칙을 사용하여 매핑 테이블에 저장하고, 이 테이블을 활용하여 압축을 구현하는 방법입니다. 이 방법은 일반적으로 무리수의 소수점 부분을 압축할 때 유용할 수 있습니다. 구체적으로, 무리수 소수점 이하의 패턴이나 반복성(주기성)을 활용하여 효율적인 압축을 달성할 수 있습니다.
아이디어 및 접근 방식
1. 무리수의 소수점 이하:
무리수는 끝없이 이어지는 소수점을 가지며, 이 소수점 이하에는 패턴이 나타날 수 있습니다. 예를 들어, **π(파이)**의 소수점 이하 값은 3.14159...로, 끝이 없고, 비주기적입니다. 그러나 일부 다른 무리수는 반복적인 패턴이나 부분적인 규칙성을 보일 수 있습니다.
2. 매핑 테이블 생성:
무리수의 소수점 이하 부분을 일정 길이씩 자르고 이를 매핑하여 테이블로 만듭니다. 예를 들어, π의 소수점 이하 14159...를 여러 개의 패턴 블록으로 나누어 매핑할 수 있습니다.
각 소수점 이하 값은 일정한 길이를 가지는 블록(예: 4자리씩)을 생성하고, 이를 테이블로 저장합니다. 이 때 각 블록은 고유의 인덱스를 가집니다.
3. 압축 과정:
테이블화된 값을 압축하여 원래 데이터를 재구성할 수 있습니다.
예를 들어, π의 소수점 이하 14159...를 [1415], [9...] 등의 패턴으로 나눈 후, 이를 인덱스화하여 압축할 수 있습니다.
매핑 테이블에서 인덱스를 찾고, 해당 값을 참조하는 방식으로 원본 데이터를 압축하는 방식입니다.
4. 매핑 테이블 활용:
압축된 데이터는 각 값이 테이블에서 참조하는 인덱스로 바뀌게 됩니다. 예를 들어, 1415라는 소수점 패턴이 테이블에 저장되어 있다면, 1415를 그대로 저장하는 대신 테이블 인덱스로 압축하는 방식입니다.
이 방식은 무리수 소수점 이하가 일정한 패턴을 따른다면, 효율적인 압축을 가능하게 합니다.
압축 과정 예시
예를 들어, π = 3.14159265358979... 라는 수를 생각해 봅시다.
1. 테이블 생성:
무리수의 소수점 이하를 일정한 블록으로 나눕니다.
예: 1415, 9265, 3589, 79... 등
각 패턴을 테이블에 저장합니다.
2. 압축:
소수점 이하의 값을 테이블 인덱스로 변환합니다.
예: 1415는 인덱스 0, 9265는 인덱스 1 등의 방식으로 압축합니다.
3. 압축된 결과:
원래 값은 14159265358979...였지만, 테이블 인덱스를 사용하여 0, 1, 2, 3... 등으로 압축될 수 있습니다.
4. 압축된 데이터의 저장 및 복원:
압축된 데이터는 인덱스 목록만 저장하고, 압축 해제 시 해당 인덱스를 사용하여 원래 값을 복원합니다.
장점
효율성: 무리수의 소수점 부분에서 반복되는 패턴을 찾아서 압축할 수 있기 때문에, 압축된 데이터 크기가 대폭 줄어듭니다.
저장 공간 절약: 매핑 테이블을 사용하면, 반복되는 부분을 인덱스로 대체하여 저장 공간을 절약할 수 있습니다.
단점
패턴이 없거나 복잡한 경우: 무리수의 소수점 이하가 예측할 수 없거나 복잡하게 변동할 경우, 이 방식은 큰 효과를 보기 어려울 수 있습니다. 주기적이지 않은 무리수는 압축 효과가 적을 수 있습니다.
매핑 테이블 관리: 테이블이 커질 수록 그 자체의 관리 및 검색이 복잡해질 수 있습니다.
결론
이 방법은 무리수의 소수점 부분에 주기성 또는 반복되는 패턴이 있을 때 유용한 압축 알고리즘입니다. 이러한 특성을 가진 데이터를 압축할 때 매핑 테이블을 활용하면 데이터 크기를 효율적으로 줄일 수 있습니다.
댓글 영역
획득법
① NFT 발행
작성한 게시물을 NFT로 발행하면 일주일 동안 사용할 수 있습니다. (최초 1회)
② NFT 구매
다른 이용자의 NFT를 구매하면 한 달 동안 사용할 수 있습니다. (구매 시마다 갱신)
사용법
디시콘에서지갑연결시 바로 사용 가능합니다.