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?

Que tal no Pinterest?

Ou talvez nos encontrar no Twitter para receber as ultimas noticias quentinhas: @SEmbarcados

E não esqueça que também tem o email, [email protected]

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