quinta-feira, 13 de março de 2014

Introdução

Olá, seja bem vindo. Pretendo, com este blog, divulgar as minhas resoluções de problemas do Project Euler (PE) feitas com o auxílio da linguagem de programação R.

Project Euler?


Ele é uma coleção de problemas matemáticos, com praticamente um problema novo aparecendo a cada semana. São, em geral, problemas de aritmética e combinatória, mas não se restringindo a essas áreas. Os problemas têm dificuldade aproximadamente crescente. A idéia é resolver os problemas usando alguma implementação computacional eficiente (rápida) o que, em muitos casos, desencoraja o uso de força bruta.

R?


Esta é uma linguagem de programação bastante usada em trabalhos de estatística e mineração de dados, embora seja bastante usada por profissionais e pesquisadores de outras áreas. É uma linguagem interpretada (portanto bastante lenta para instruções envolvendo loops), de aprendizado relativamente rápido, e possui um excelente ferramental gráfico. Há evidentes semelhanças com MATLAB/Octave, por ser bem eficiente (em facilidade e em desempenho) para manipular funções e objetos vetoriais. Possui orientação a objetos e um vastíssimo repositório de bibliotecas. Entretanto, pretendo dar preferências as minhas próprias soluções.

Mais um blog sobre isso?


Sim. Há muitos blogs por aí discutindo problemas do PE e suas soluções, mas eu gostaria de também deixar o meu ponto de vista. Afinal, costuma-se haver diversas maneiras diferentes de se atacar problemas do PE. Também há muitos blogs por aí tratando da linguagem R. Comecei a usar R profissionalmente, admito que não sou um bom programador, e pretendo usar o PE e este blog como desculpa para:
  1. Estudar implementação eficiente de algoritmos;
  2. Estudar a própria linguagem R, significando que, às vezes, não vou dar uma solução eficiente de propósito por querer explorar algum outro aspecto da linguagem que seja de interesse;
  3. Exercitar o cérebro lembrando-me de coisas que estudei na faculdade (sou bacharel em Matemática);
  4. Motivar discussões, compartilhar conhecimento e aprender com comentários;
  5. Exercitar um pouco de didática;  :o)
  6. (Tentar) esclarecer minhas dúvidas;  :-D
  7. E tudo isso em língua portuguesa! However, variable names and comments inside my code may be in English, so don't be surprised.
Todos os códigos que eu utilizar estarão disponívels em meu GitHub, o qual ainda não sei usar direito. Minhas velocidades de escrita, resolução dos problemas e atualização do GitHub não serão necessariamente as mesmas, advirto. ;-)

Estão preparados? Se bem que a pergunta correta é: estou preparado?

Nenhum comentário:

Postar um comentário