(Vários) Projeto: Compactação de Dados [EM DESENVOLVIMENTO]

Encontrei algumas formas pelas quais algumas funções podem ser compactadas, ainda está em desenvolvimento, tenho 3 métodos principais em mente agora e 1 deles a teoria já está pronta

 

 

 

 1 - Compactação de tabelas (MySQL ou similares)

A ideia é a seguinte:

Se tenho uma escola, com 100 mil alunos, eu guardo uma tabela simples com as colunas de ID, Nome, Nota do 1º semestre e Nota do 2º semestre

 

2 - Compactação de dados do HD

PRÓS:

- Economia no HD, por não haver repetições de códigos, somente endereços


CONTRAS:

- Um erro no HD numa parte com um código e inutilizaria todos os dados vinculados à esse dado no HD.


Essa ideia consiste em:

    Pegar os dados repetidos e colocá-los em um único lugar no HD


 

 

 3 - Compactação de valores numéricos sequenciais

O princípio é:

Um: 


x=0

while(x < 1000000):

    print(x)

    x = x + 1


 

É um código de uns 40 bytes que permite teoricamente "armazenar" no processador até 1 milhão de valores em sequência, pois eles não estão no HD os 1 milhão de números literalmente, estão somente a repetição no "while". Aquilo que daria vários MBs seria resumido em poucos Bytes. Isso caso aquele valor se repita várias seguidas vezes durante a sequência

Com base nisso, o método é o seguinte:

 

Eu tenho uma sequência aleatória de bits, supondo que seja:

 0,0,0,1,0,1,0,0,0,0,1,1,0,1,1,1,0,0,0,1,0,0,1,1,0 

Tanto faz começar por 0 ou 1, começando por 0, eu guardo o 0:

 

valorInicial = 0

 

Eu primeiro faço uma nova lista com a distância entre cada "0" e seu seguinte, ficaria algo como:

0,0,0,1,0,1,0,0,0,0,1,1,0,1,1,1,0,0,0,1,0,0,1,1,0 para isso:

0,0,0, ,0, ,0,0,0,0, , ,0, , , ,0,0,0, ,0,0, , ,0 Para isso:

0,0,+1,+1,0,0,0,+2,+3,0,0,+1,0,+2

 

0,0,+1,+1



Comentários

Postagens mais visitadas deste blog

Brawlhalla (game) - Programa para treino