Faça uma função para calcular o número neperiano usando uma série. A função deve ter como parâmetro o número de termos que serão somados (note que, quanto maior o número, mais próxima a resposta estará do valor e ).
ell=sumn=0^infty 1n!=10!+11!+12!+13!+14!+ldots

Passo 1

O exercício pede uma função que receba um número de termos e retorne a soma truncada da série de Taylor para o número de Euler (base do logaritmo neperiano). O conteúdo é série infinita e fatorial, e vamos precisar calcular fatoriais de forma eficiente e acumular a soma de 1/n!.

Passo 2

A série é dada por
ell = sumn=0^infty 1n!
Para aproximar, truncamos em N termos:
SN = sumn=0^N 1n!
Quanto maior N, mais próxima de e fica a soma.

Passo 3

Em vez de calcular o fatorial do zero a cada iteração (o que seria ineficiente), podemos usar a relação
f(n) = n! = n times (n-1)!
e manter uma variável fact que começa em 1 (correspondente a 0!) e a cada passo multiplica pelo índice atual. Isso evita recálculo repetido.

Passo 4

Assim, o algoritmo geral em Python fica: 1) inicializar soma = 0.0 e fact = 1; 2) para cada n de 0 até N, se n > 0 fazemos , depois incrementamos fact *= n com soma; 3) no fim retornamos 1/fact.

Passo 5

Testando com N = 0 temos S0 = 1/0! = 1. Para N=1, S1 = 1 + 1 = 2. Para N=5, obtemos aproximadamente 2.7166667, já bem perto de e approx 2.71828.

Resposta

def neperiano(N):
“”“Calcula a aproximação de e somando 1/n! de n=0 até n=N.”""
soma = 0.0
fact = 1
for n in range(0, N+1):
if n > 0:
fact *= n
soma += 1.0 / fact
return soma

Exemplo de uso:

#>>> print(neperiano(10)) # Aproximação de e usando 10 termos

Exercícios relacionados