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 (-1)^2=+1, para k=2 (-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 -\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

def soma_alternada(n):
    if n % 2 == 0:
        return -n // 2
    else:
        return (n + 1) // 2

Exercícios relacionados