(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
Postar um comentário