Algoritmos e Matemática

Ainda há pouco finalizei o primeiro trabalho da avaliação final de Transmissão de Dados. Serão dois trabalhos ao total.

Nesse primeiro eu tive que implementar o algoritmo LZW para compressão de dados. Ele segue uma lógica bem interessante e ao mesmo tempo simples. Apesar de todo o código extra que surge quando você parte para a implementação (validação de entrada, tratamento de alguns casos especiais etc.) a parte realmente importante é bem fácil de entender. Basicamente, o algoritmo associa cada caractere da sequência de entrada a um índice num dado dicionário (no meu caso foi utilizada a tabela ASCII) e novas combinações de caracteres ainda não cobertas recebem novos códigos e são adicionadas ao fim do dicionário.

A saída do algoritmo é uma sequência de números (códigos) representando pequenas cadeias de caracteres que quando juntas representam o arquivo original. Para descomprimir basta reconstruir o dicionário criado durante a compressão e decodificar a nova sequência.

Eu implementei tudo em Python, o que deixou as coisas bem mais divertidas :-) e guardei o código no GitHub.

***

Ultimamente eu tenho me interessado bastante por Matemática. Me interessado ao ponto de cogitar a possibilidade de eu mesmo me tornar um matemático. Se isso ocorrer é bem provável que eu desenvolva minha pesquisa com algo relacionado  à matemática computacional ou matemática discreta em geral. Não gosto muito de Cálculo e todo o seu algebrismo.

Andei vendo uns vídeos, muitos vídeos na verdade, sobre coisas relacionadas à Matemática numa tentativa de ganhar alguma motivação pros meus estudos. Acabei ficando bem empolgado no final.

Dos vídeos que vi, acabei descobrindo o interessante personagem que é o Cedric Villani. As palestras dele me deixaram bem motivado e agora venho pensando em números, teoremas e problemas constantemente.

O problema é que eu sou ambicioso demais. Quero logo ser o melhor e superar a todos, receber uma medalha Fields.

Eu não canso de ser pretensioso. É até triste isso.
Licença Creative Commons

Este blog é licenciado com a Licença Creative Commons - Atribuição - Uso Não Comercial - Obras Derivadas Proibidas 3.0 Não Adaptada.
Você pode reproduzir o conteúdo aqui encontrado, mas não pode vendê-lo ou alterá-lo.