e pede quatro coisas:
a) Escrever um algoritmo que some os primeiros termos dessa série
b) Contar quantas adições, multiplicações e divisões o algoritmo faz (complexidade em função de )
c) Implementar e mostrar como fica a aproximação de para vários
d) Encontrar quantos termos são necessários para ter 10 dígitos certos
Conteúdo: somatório, fatorial, estimativa de erro de série, complexidade elementar de algoritmos. Vamos usar definição de fatorial (), soma parcial e estimativa de resto de série.
Passo 2
Parte (a) – algoritmo para somar os primeiros termos
Inicializa (corresponde ao termo , que é ) (o valor de no passo anterior)
Para de 1 até :
a) Atualiza o fatorial:
(porque )
b) Calcula o termo
c) Soma na variável acumuladora:
No final, é a aproximação de com termos.
Em pseudocódigo:
function aproximar_e(t):
sum ← 1
fact ← 1
for n from 1 to t-1 do:
fact ← fact * n
term ← 1 / fact
sum ← sum + term
return sum
Passo 3
Parte (b) – complexidade contando operações
No laço de 1 até :
1 multiplicação para atualizar fact
1 divisão para gerar term
1 adição para atualizar sum
Como esse corpo roda vezes, temos:
Multiplicações:
Divisões: (ou se contarmos alguma divisão extra, mas basicamente )
Adições:
Então a complexidade é e o número exato de cada operação é proporcional a .