8 de fev de 2010

Boas Práticas de Programação 2 - A Soma De Gauss

A Lenda

Conta-se que um professor de Matemática pediu aos alunos de sua turma que somassem todos os números de 1 a 100, como forma de castigo por serem indisciplinados. Grande foi a surpresa desse professor quando, em pouquíssimo tempo, uma das crianças (Carl Friedrich Gauss) levantou-se e lhe entregou uma folha de papel com o resultado correto e uma ideia simples, porém genial.

Trata-se da seguinte lógica:

S = (1+100) + (2+99) + (3+98) + ... + (50+51);


Para cada parcela temos o valor 101. E ao total temos 50 parcelas.
Logo, S = (50 * 101) → S = 5050.

Outra maneira de tratarmos desse problema seria,

S = n(n+1)/2;


Computacionalmente falando...

Levando esse problema para uma linguagem de programação, como Java, teriamos os seguintes trechos de código:

1. Iterando com um laço.


2. Utilizando a soma de Gauss


É notável que o consumo de processamento nos dois casos é muito significativo. Enquanto no exemplo 1 foram
realizadas 100 iterações, o exemplo 2 possui apenas uma instrução.

Friedrich Gauss (1777 - 1855)
Foi um astrônomo, matemática, e físico alemão.