março 12, 2026

Adição de Polinômios em Código

Por admin

Sobre a Matemática

Para somar vários polinômios, é preciso escrever todos os seus termos uns depois dos outros, cada um com seu sinal, e reduzir os termos semelhantes.

Seja o polinômio a-b, ao qual se deve acrescentar outro polinômio c-d.

Ao polinômio a-b, acrescentando c, acrescenta-se d, a mais, porque a-b deve ser aumentado só do excesso de c sobre d. A soma de a-b+c deve, pois, ser diminuída de d, e vem a ser: a-b+c-d. Este resultado legitima a regra precedente.

Para somar vários polinômios, pode-se escrevê-los uns abaixo dos outros, de modo que os termos semelhantes se correspondem, e fazer depois a redução.

Modo de indicar a adição – Para indicar a adição de vários polinômios, escreve-se cada qual entre parênteses, e depois escrevem-se estes parânteses em seguida uns aos outros, separando-os pelo sinal +. Segundo isso, para indicar a soma dos polinômios a-b+c-d, b-c+d-a, c-d+a-b, escreve-se: (a-b+c-d)+(b-c+d-a)+(c-d+a-b).

Sobre o Código

Na linguagem de programação Python,

from – é a palavra-chave usada para importar módulos ou partes específicas de um módulo.

collections – é o módulo da biblioteca padrão que fornece tipos de dados especializados, como defaultdictCounter, etc.

import – é a palavra-chave usada para trazer módulos ou funções externas para o código.

defaultdict() – é a estrutura de dicionário que cria automaticamente valores padrão quando uma chave inexistente é acessada.

def – é a palavra-chave usada para definir uma função.

Docstring – é o texto entre aspas triplas logo após a definição de função, usado para documentar o que a função faz. Pode ser acessado pelo comando help() ou pelo atributo .__doc__.

for..in...: – é a estrutura de repetição que percorre elementos de uma sequência (lista, string, etc.).

.replace() – é o método de string que substitui partes de um texto por outro.

.split() – é o método de string que divide o texto em partes, retornando uma lista.

if: – é a estrutura condicional usada para executar código se uma condição for verdadeira.

elif: (Else if) – é usado para testar outra condição se a anterior não for verdadeira.

else: – é a parte final da estrutura condicional, executada se nenhuma condição anterior for satisfeita.

== – é o operador de comparação que verifica se dois valores são iguais.

continue – é o comando dentro de loops que pula para a próxima iteração, ignorando o restante do código atual.

.isdigit() – e o método de string que retorna True se todos os caracteres forem dígitos numéricos.

+= – é o operador de atribuição que soma um valor a uma variável existente.

.append(str) – é o método de lista que adiciona um novo elemento ao final da lista.

f"..{}" (f-string) – é a forma de interpolar variáveis dentro de strings usando {}.

.join() – é o método de string que junta elementos de uma lista em uma única string, separados por um delimitador.

print() – é a função que exibe valores ou mensagens na saída padrão (console).

# – é usado para criar comentários ao código, que são notas para se entender melhor o que o código faz.

Vamos ao código…

from collections import defaultdict

def somar_polinomios(*polinomios):
    """
    Recebe vários polinômios (como strings) e retorna a soma reduzida.
    Exemplo: somar_polinomios("a-b+c-d", "b-c+d-a", "c-d+a-b")
    """
    termos = defaultdict(int)

    for polinomio in polinomios:
        # Substitui sinais para facilitar separação
        polinomio = polinomio.replace("-", "+-")
        partes = polinomio.split("+")
        
        for parte in partes:
            if parte.strip() == "":
                continue
            coef = 1
            var = parte.strip()
            
            # Se começa com "-", coeficiente é -1
            if var.startswith("-"):
                coef = -1
                var = var[1:]
            
            # Se for só número, trata como constante
            if var.isdigit():
                termos["constante"] += coef * int(var)
            else:
                termos[var] += coef

    # Monta resultado
    resultado = []
    for var, coef in termos.items():
        if coef == 0:
            continue
        if var == "constante":
            resultado.append(str(coef))
        else:
            if coef == 1:
                resultado.append(var)
            elif coef == -1:
                resultado.append(f"-{var}")
            else:
                resultado.append(f"{coef}{var}")

    return "+".join(resultado).replace("+-", "-")

# Exemplo de uso
print(somar_polinomios("a-b+c-d", "b-c+d-a", "c-d+a-b"))
Código Python (.py)O que faz
from collections import defaultdictImporta defaultdict, uma estrutura de dicionário que cria valores padrão automaticamente (neste caso, usado para somar coeficientes dos termos).
def somar_polinomios(*polinomios):Define a função somar_polinomios, que recebe vários polinômios como argumentos (strings).
“”” Recebe vários polinômios… “””Docstring explicando o que a função faz e dando um exemplo de uso.
termos = defaultdict(int)Cria um dicionário onde cada chave (variável ou constante) começa com valor 0. Isso permite somar coeficientes facilmente.
for polinomio in polinomios:Inicia um loop para percorrer cada polinômio fornecido como argumento.
polinomio = polinomio.replace(“-“, “+-“)Substitui sinais de menos por +- para facilitar a separação dos termos.
partes = polinomio.split(“+”)Divide o polinômio em uma lista de termos separados pelo sinal +.
for parte in partes:Loop para analisar cada termo da lista partes.
if parte.strip() == “”: continueIgnora termos vazios (que podem aparecer após a divisão).
coef = 1Define coeficiente inicial como 1.
var = parte.strip()Remove espaços extras do termo atual.
if var.startswith(“-“):Verifica se o termo começa com -.
coef = -1Se começar com -, define coeficiente como -1.
var = var[1:]Remove o sinal – da frente da variável.
if var.isdigit():Verifica se o termo é apenas um número (constante).
termos[“constante”] += coef * int(var)Se for número, soma ao termo especial “constante”.
else:Caso contrário, o termo é uma variável (ex.: a, b, c).
termos[var] += coefSoma o coeficiente da variável correspondente no dicionário.
resultado = []Cria uma lista para armazenar os termos finais do polinômio reduzido.
for var, coef in termos.items():Percorre cada variável e seu coeficiente no dicionário.
if coef == 0: continueIgnora termos cujo coeficiente final seja 0.
if var == “constante”:Caso seja uma constante numérica.
resultado.append(str(coef))Adiciona o valor numérico ao resultado.
else:Caso seja uma variável.
if coef == 1:Se coeficiente for 1, adiciona apenas a variável (ex.: a).
resultado.append(var)Adiciona a variável sem número.
elif coef == -1:Se coeficiente for -1, adiciona -variável.
resultado.append(f”-{var}”)Adiciona termo negativo.
else:Caso coeficiente seja diferente de 1 ou -1.
resultado.append(f”{coef}{var}”)Adiciona termo com coeficiente explícito (ex.: 2a, -3b).
return “+”.join(resultado).replace(“+-“, “-“)Junta todos os termos com + e corrige sinais redundantes (+- vira -).
print(somar_polinomios(“a-b+c-d”, “b-c+d-a”, “c-d+a-b”))Exemplo de uso: imprime a soma dos três polinômios fornecidos.

Saída do código (valor de retorno)…

a-b+c-d

Fonte:
– Editora Didática Paulista. Ensino Didático 2000: Ensino Fundamental e Ensino Médio. Sorocaba: Editora Didática Paulista, [s.d.].
– Códigos e comentários gerados por Microsoft Copilot com revisão nossa.
– https://docs.python.org/pt-br/3/ [Documentação Oficial do Python]