Fatorial de 1.000.000 no Raspberry Pi , será que a plaquinha aguenta ?

 

Olá , grandes Senhoras e Senhores embaixadores da Verdade Embarcada, Mestras e Mestres dos Bits e dos Bytes.

Já faz um certo tempo que estava querendo fazer um post sobre programação de “Big Numbers”, ou seja, como fazer um fatorial de 1.000.000 (um milhão ) no bom e velho gcc,  usando umas das minhas plaquinhas e a coitada do momento foi a Raspberry Pi 2 (essa sofre …).

Mas qual a vantagem disso ?Vocês devem estar se perguntando ! Aprendizado minhas amigas e amigos , muito aprendizado.

Bom esse post abre uma nova série de programação aqui no site, inicialmente irei postar o básico e ir avançando para assunos mais complexos , iremos utilizar linguagens como C, Prolog e Python, tirando o Prolog tanto C como Python são muito utilizadas em programação embarcada, sendo que o Python vem embarcado em muitas distribuições para Raspberry Pi.

Antes de iniciarmos é bom verificarmos, se temos todos os programas e bibliotecas instalados .

Digite o seguinte no seu terminal do linux:

Agora temos que saber se as bibliotecas libgmp estão instaladas , para isso digite:

libgmp_instalada

Caso você não tenha essa sorte toda (alguns usuários Raspibian Jessie tem …), faça a instalação da seguinte forma:

Agora vamos colocar a mão na massa, com o nosso programinha sobre o fatorial de um big number.

Iremos utilizar a biblioteca gmp.h que foi instalada no passo anterior , para mais detalhes de como trabalhar com a mesma acesse AQUI

Caso ainda não saiba como calcular o fatorial de um número acesse esse link AQUI.

Nosso Programinha ficou com a seguinte cara :

Agora que já escrevemos o nosso programinha que tal compilarmos o mesmo e vermos o resultado na nossa plaquinha.

Eu adicionei no final do programa uma maneira de saber quanto tempo demorou pra rodar nosso código.

Mas no Linux , existe uma função chamada time que faz a mesma coisa infelizmente não é tão precisa, mas para testar a mesma faça assim:

Usando a função time ela mostra três resultados , sendo o primeiro o tempo de entrada(real), o segundo é o tempo de processamento e o terceiro o tempo do sistema operacional.

Caso queira também pode fazer os mesmos testes em Python, ele já trás toda a implementação de Big Numbers  pronta para uso sem a necessidade bibliotecas, etc. Essa implementação nativa existe desde a versão 2.5.

Uma implementação possível em Python para esse programinha seria :

Como podem ver em Python a quantidade de linhas para o mesmo programa é bem menor mas isso tem um preço alto que é a questão do processamento e tempo de execução, dizem as más linguas …

Veja o resultado do programinha fatorial.c

Valeu , tomorrow tem more , se Moore permitir  ; )

 

Que tal nos encontrar no SeuTubo para ver dicas, tutoriais e Reviews de placas? Canal Sistemas Embarcados

Que tal na página do Facebook?

Ou Instagram?

Quem sabe Google Plus?

Conheça também nossos grupos do Facebook:

Visitem nossos Sites Parceiros:

Forte abraço e até o próximo embarcado.

Related Post

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Protected with IP Blacklist CloudIP Blacklist Cloud