Como resolver quebra-cabeça de adição (cryptarithms)
Quebra cabeça da adição é o nome que muitos professores dão a criptaritmos baseados em operações de soma. Você vê algo como SEND + MORE = MONEY e precisa descobrir qual dígito (0-9) cada letra representa. Parece um jogo, mas na prática é puramente lógica combinatória aplicada. O básico: cada letra é um dígito único. A mesma letra sempre é o mesmo dígito. Dígitos diferentes são letras diferentes. Nenhuma letra começa com zero — se uma palavra tem mais de um dígito, seu primeiro caractere não pode ser zero. A soma horizontal tem que bater.
A abordagem prática funciona assim. Comece pelas colunas da direita. Na coluna dos unidades, você olha quais combinações de dois dígitos produzem o dígito final da soma e se há ou não saldo para a próxima coluna. A partir daí, vai avançando para a esquerda, eliminando possibilidades a cada nova restrição que aparece. Não tente adivinhar — elimine.
Quebra cabeça da adição: passo a passo real
Segundo exemplo mais comum depois do SEND+MORE. Vamos fazer um menor para não gastar meia hora: A B
+ C D
= E F
Você lê: A mais C dá E, e B mais D dá F. Parece trivial, mas a complexidade aparece quando as palavras têm mais letras ou quando há transporte entre colunas. Aí a coisa muda de figura. Passo 1 — identifique colunas com transporte. Se B + D >= 10, há um carries (transporte) de 1 para a coluna seguinte. Isso muda tudo. Sem transporte: A + C = E diretamente. Com transporte: A + C + 1 = E. Você precisa decidir qual cenário é o correto testando contra as restrições disponíveis.
Passo 2 — olhe os dígitos maiores. A letra que aparece como primeiro dígito de uma soma com mais dígitos que os operandos quase sempre é 1. Se você tem por exemplo ABC + DE = FGH e F precisa ser maior que A e D juntos, F frequentemente acaba sendo 1 porque não há como somar dois dígitos e produzir algo maior que 9 sem um transporte de 1, e aí o resultado já estoura pra outra casa. Passo 3 — elimine por exclusão de dígitos usados. Cada vez que você atribui um valor a uma letra, remova aquele dígito do leque disponível. Isso é o que faz o problema encolher. Um buga cabeça da adição com 8 letras únicas tem, no máximo, 8! combinações possíveis (40.320). Com 9 ou 10 letras, já começa a ficar grande demais para testar na mão.
Passo 4 — use restrição de paridade e módulo quando necessário. Se uma coluna resulta em um dígito par e você sabe que um dos operandos é par, o outro pode ser determinado por subtração. Isso corta caminho.
O problema que eu vi e que ninguém explica direito
Eu tive um caso onde o quebra cabeça da adição parecia impossível de resolver pela lógica convencional. A estrutura era algo como: X Y Z
+ A B C
= D E F G
Com restrições extras de que X != A, Y != B, Z != C, e ainda um dígito proibido na tabela. O método padrão de ir coluna por coluna travava porque havia múltiplos cenários de transporte viáveis em cada etapa. Levei uns 40 minutos num papel sem chegar a lugar nenhum. O que funcionou foi mudar a estratégia: em vez de começar pela direita, comecei pela coluna mais restritiva — a do meio (Y + B = E, com possibilidade de transporte de ambas as laterais). Identifiquei que E precisava ser um dígito que aparecesse como soma de dois dígitos distintos dentro do conjunto disponível, descartando imediatamente combinações que geravam E com valor impossível dadas as restrições de dígitos proibidos. Depois usei aquela atribuição fixa para retroceder às colunas laterais e resolver por eliminação. Resolveu em 6 minutos.
👉 Clique no botão abaixo para saber mais sobre o assunto!
A lição prática: não siga cegamente da direita para a esquerda. Encontre a coluna com menos possibilidades viáveis e comece por ela.
Pegadinhas comuns que quebram iniciantes
Primeira pegadinha clássica: um dígito que aparece duas vezes na mesma palavra conta como a mesma variável em ambas as posições. Muita gente trata como se fossem letras diferentes. Não são. Segunda: esquecem que o transporte pode vir de duas colunas diferentes ao mesmo tempo. Se você tem uma soma de três números, por exemplo, o transporte pode ser 1 ou 2, não apenas 1. Um erro muito comum é assumir que o carry máximo é sempre 1 em qualquer situação.
Terceira: não verificam se a solução final bate em todos os lugares. É fácil achar uma atribuição que funciona para duas colunas e esquecer de checar a terceira. Sempre substitua os valores encontrados de volta na equação original e faça a soma completa.
Ferramentas e automação
Para quebra cabeça da adição com mais de 7 letras, a resolução manual tende a ser ineficiente. Existem scriptings em Python que usam backtracking com restrição de propagação que resolvem esses problemas em segundos. A biblioteca python-constraint ou até um solver Z3 são opções válidas se você estiver montando um banco de exercícios ou validando soluções. Um exemplo simples em Python usando backtracking direto:
from itertools import permutationsdef solve(send, more, money): letters = set(send + more + money) for perm in permutations(range(10), len(letters)): mapping = dict(zip(letters, perm)) if mapping.get(send[0]) == 0 or mapping.get(more[0]) == 0 or mapping.get(money[0]) == 0: continue num1 = sum(mapping[c] * (10 (len(send) - i - 1)) for i, c in enumerate(send)) num2 = sum(mapping[c] * (10 (len(more) - i - 1)) for i, c in enumerate(more)) total = sum(mapping[c] * (10 (len(money) - i - 1)) for i, c in enumerate(money)) if num1 + num2 == total: return mapping Isso resolve o SEND + MORE = MONEY em menos de 2 segundos numa máquina moderna.
Quando o quebra cabeça da adição não funciona
Há casos em que o problema não tem solução única, ou não tem solução nenhuma. Isso é mais comum do que se imagina. Muitos professores criam puzzles que parecem bem formados mas são inconsistentes — ou seja, não existe nenhuma atribuição de dígitos que satisfaça todas as restrições simultaneamente. Você gasta meia hora e não encontra nada, e a resposta é simplesmente "não existe solução". Também existem puzzles com múltiplas soluções válidas. Isso é problemático se o objetivo é ter uma resposta única para corrigir trabalhos de alunos. Recomendo sempre testar um puzzle com um solver antes de usá-lo em contexto educacional, senão você vai passar mal na frente da turma tentando justificar uma resolução que não existe.
Outra limitação prática: quebra cabeça da adição puramente verbal (letras representando dígitos) só funciona bem com 8 letras ou menos. Acima disso, a busca manual perde o sentido e vira trabalho de computador. Se o objetivo é ensinar lógica para crianças, fique com puzzles de até 6 letras. Para adultos ou estudantes avançados, 7-8 letras é o teto razoável.
Onde encontrar exercícios prontos
Existem geradores online de quebra cabeça da adição que criam problemas com nível de dificuldade ajustável. A maioria deles usa algoritmos de geração reversa — escolhem valores para as letras primeiro e depois constroem a soma a partir daí, garantindo que sempre haja pelo menos uma solução. Isso é mais seguro do que tentar montar puzzles à mão, porque evita problemas inconsistentes. Se você está procurando material para imprimir ou usar em sala, sites como Math Playground, Conceptual Mathematics e bancos de puzzles de criptaritmo em português têm boas coleções organizadas por número de letras e presença de transporte. O ideal é variar entre puzzles sem transporte (mais simples) e com transporte (mais complexos) para não criar dependência de um único tipo de raciocínio.