Questão 9: Crie uma função soma_alternada(n) que calcule a soma da série 1 -2+3-4+\cdots \pm n.
Exemplo: soma_alternada (5) deve retornar 1-2+3-4+5=3.
Passo 1
O enunciado pede para criar uma função chamada soma_alternada(n) que calcule a soma da sequência
1 - 2 + 3 - 4 + \cdots \pm n.
Informações que temos e suposições necessárias:
A entrada é um inteiro n (assumimos n\ge 1).
A soma é a soma dos inteiros de 1 até n com sinais alternados, começando por + em 1.
Exemplo dado: para n=5 temos 1-2+3-4+5=3.
Passo 2
Vamos traduzir a soma para uma notação que facilita pensar: a soma pode ser escrita como
\sum_{k=1}^{n} (-1)^{k+1}\,k.
Explicando essa expressão:
O índice k percorre os inteiros de 1 até n.
O fator (-1)^{k+1} alterna o sinal: para k=1 dá (-1)^2=+1, para k=2 dá (-1)^3=-1, e assim por diante.
Multiplicamos esse sinal por k para obter o termo +1,-2,+3,-4,\dots.
Passo 3
Estratégia rápida (muito útil na prova): analisar os dois casos de paridade de n (ou seja, se n é par ou ímpar). Isso costuma simplificar muito somas alternadas.
Primeiro caso: n é par. Escreva os termos em pares:
(1-2) + (3-4) + \cdots + (n-1 - n).
Cada par tem valor
(2m-1)-(2m) = -1
para m=1,2,\dots,\tfrac{n}{2}. Há \tfrac{n}{2} pares quando n é par. Logo a soma inteira é
-\frac{n}{2}.
Explicando linha a linha: para cada par (2m-1)-(2m) obtemos -1. Somando \tfrac{n}{2} vezes -1 dá -\tfrac{n}{2}.
Passo 4
Segundo caso: n é ímpar. Então podemos somar os primeiros n-1 termos (que é um número par de termos) usando o resultado do caso anterior, e depois somar o último termo +n. Ou seja,
\text{soma até }n = \left(1-2+3-4+\cdots-(n-1)\right) + n.
Os primeiros n-1 termos (como n-1 é par) somam -\dfrac{n-1}{2} pelo raciocínio do passo anterior. Somando o último termo +n,
-\frac{n-1}{2} + n = -\frac{n-1}{2} + \frac{2n}{2} = \frac{n+1}{2}.
Portanto, quando n é ímpar, a soma vale \dfrac{n+1}{2}.
Passo 5
Juntando os dois casos obtemos a fórmula fechada (útil na prova porque é O(1) — não precisa somar termo a termo):
\text{soma}= \begin{cases} -\dfrac{n}{2}, & \text{se } n \text{ é par},\\[6pt] \dfrac{n+1}{2}, & \text{se } n \text{ é ímpar}. \end{cases}
Essa é a resposta matemática. Sempre que no exame aparecer uma soma alternada parecida, cheque a paridade de n — isso resolve rapidinho.]
Passo 6
Agora vamos transformar isso numa função em Python. A ideia do código é:
Verificar se n é par (usando n % 2 == 0).
Se for par, retornar -n//2.
Se for ímpar, retornar (n+1)//2.
Explicando detalhes de implementação:
Em Python, n % 2 dá o resto da divisão por 2; se for 0 então n é par.
Usei // para divisão inteira (garante inteiro como retorno).
A função é O(1): tempo constante independente do tamanho de n, ideal para prova sem gastar tempo.
Passo 7
Teste rápido com os exemplos para checar mentalmente:
Para n=5 (ímpar) a fórmula dá \dfrac{5+1}{2}=3 — bate com o exemplo.
Para n=6 (par) a fórmula dá -\dfrac{6}{2}=-3. Se quisermos conferir somando termo a termo: 1-2+3-4+5-6 = -3 — OK.
Passo 8
Observações finais e dica de prova:
Se você tiver tempo, pode fazer um loop acumulando os sinais; isso dá código simples mas custa O(n).
Em prova, diga o raciocínio de pares (passos 3 e 4) e forneça a fórmula fechada: a banca gosta da argumentação por pares.
Respire fundo: esse tipo de soma é um clássico e com a ideia de “paridade” você resolve em 2 minutos.
Resposta
defsoma_alternada(n):
if n % 2 == 0:
return -n // 2else:
return (n + 1) // 2