Últimos Posts

sábado, 18 de abril de 2015

[Python] - Soma dos dígitos do fatorial de 100

No post anterior havíamos postado uma implementação em C para o problema da soma dos dígitos do fatorial de 100. O problema encontra-se no link:


Bem, em C foi um pouquinho trabalhoso, em Python é bem mais simples, veja:



Programação em C - Soma dos dígitos do fatorial de 100 (Project Euler Problem 20)

Olá pessoal, recentemente me deparei com o problema de calcular a soma dos dígitos do fatorial de números grandes. Em algumas linguagens isso é muito fácil de fazer bastando utilizar bibliotecas já prontas.

Em Python por exemplo você não precisa se preocupar com o tamanho do número, basta você calcular o fatorial normalmente ou mesmo utilizar a função "factorial" que já vem implementada no ponto para utilizar. Depois de calcular o fatorial, basta somar os dígitos.

Em Java por exemplo você poderia utilizar a classe BigInteger. Enfim, existem várias bibliotecas que podem lhe ajudar. O problema de calcular a soma dos dígitos de 100! está disponível no endereço:



sexta-feira, 17 de abril de 2015

C++ - Implementação de uma MLP (multilayer perceptron)

Olá pessoal, no post passado implementamos uma rede neural Perceptron que é a rede mais simples, pois possui uma camada e apenas um neurônio nesta camada.

Uma rede neural de uma única camada não consegue implementar o XOR, isso acontece porque o XOR não é linearmente separável, ou seja, você não consegue desenhar uma linha para separar os pontos (0,0) e (1,1) dos pontos (0,1) e (1,0).

A solução é usar uma MLP (rede perceptron com múltiplas camadas). Resultado de um trabalho em uma disciplina, foi implementado a rede MLP ou PMC (em português "perceptron multicamadas").



[Python] - Implementação da rede Perceptron

Já falamos em outros posts sobre Redes Neurais, daremos continuidade ao assunto (caso tenha perdido os outros posts basta fazer uma busca no canto superior direito) dessa vez abordando a rede Perceptron.

A Perceptron é a forma mais simples de configuração de uma rede neural artificial. Caso você esteja começando seus estudos com redes neurais, é aconselhável entender ela primeiro antes de partir para o entendimento de outras redes.

A rede Perceptron tem apenas uma camada neural e somente um neurônio artificial nesta única camada, por isso ela é tão simples.



[Dica] - Linux - Saber qual distro que está rodando

Olá pessoal, esse post é simples e rápido. Serve para você saber qual distro (distribuição) Linux está rodando, um simples comando no terminal resolve isso:

cat /etc/issue



quinta-feira, 16 de abril de 2015

Programação em C - Merge Sort

Olá pessoal, seguindo com os nossos posts sobre implementações de algoritmos de ordenação, dessa vez iremos abordar o Merge Sort (ordenação por integração).

Já abordamos o Insertion Sort, Selection Sort, Bubble Sort e Heap Sort. O que deu mais trabalho desses 4 foi com certeza o Heap Sort, não que ela seja difícil de entender, pelo contrário, mas do ponto de vista de implementação é um pouquinho mais trabalhoso.

O Merge Sort também não é difícil o entendimento e a implementação não oferece tanta dificuldade. É importante que você tenha noção de recursão (recursão ocorre quando uma função faz chamada a si própria).



terça-feira, 14 de abril de 2015

Programação em C - Heap Sort

Olá pessoal, nesse post irei disponibilizar o código de uma implementação do algoritmo de ordenação Heap Sort na linguagem C.

Anteriormente havia postado as implementações do Insertion Sort, Bubble Sort e Selection Sort. Essas implementações são bem simples e não oferecem dificuldades. O heap sort tem complexidade nlogn no pior caso, ou seja, é melhor do que os algoritmos falados anteriormente no pior caso.

A implementação do Heap Sort também é simples, mas você terá que entender alguns conceitos a mais para implementá-lo.



segunda-feira, 13 de abril de 2015

Programação em C - Bubble Sort

Olá pessoal, nesse post iremos ver outro método de ordenação chamado de ordenação bolha ou bubble sort.

Trata-se de um algoritmo bem simples de implementar e é estável. A desvantagem encontra-se no fato de, se o arquivo já estiver ordenado, o custo das comparações continua sendo quadrático. Há um alto custo de trocas de elementos.

É um algoritmo interessante para você utilizar para ordenar um pequeno conjunto de dados. Para um grande conjunto de dados ele é lento e deve ser evitado.



Programação em C - Selection Sort

Olá pessoal, nesse post irei colocar uma implementação do método de ordenação chamado Selection Sort.

Trata-se de um método muito simples de implementar. Veja o vídeo a seguir para entender como funciona o Selection Sort:



Veja como é simples a implementação:



Programação em C - Insertion Sort

Olá pessoal, nesse post irei colocar um código em C que implementa o algoritmo de ordenação insertion sort.

Ordenar é um processo de rearranjar um conjunto de objetos em uma ordem ascendente ou decrescente.

O vídeo a seguir fará com que você entenda como esse método simples de ordenação funciona: