O que é e como resolver a lenda do diamante
a lenda do diamante é um problema de lógica e matemática que aparece com frequência em entrevistas técnicas, competições de programação e desafios de raciocínio. A versão mais conhecida envolve um mineiro que encontra um diamante de valor desconhecido e precisa dividi-lo entre seus filhos seguindo condições específicas que, à primeira vista, parecem contraditórias. O truque não está na matemática avançada, mas em enxergar a estrutura por trás do enunciado. A formulação clássica costuma ser algo assim: um pai deixa como herança um diamante e três filhos. O mais velho deve receber metade mais meio quibe (ou uma fração equivalente), o do meio um terço mais um terço, e o mais novo um nono mais um nono. O diamante não pode ser partido em pedaços menores. Parece impossível até você perceber que há uma variável oculta.
Resolver isso exige um método sistemático, não chute. O caminho mais direto é modelar o problema como uma equação diofantina. Você define o valor total do diamante como uma variável, digamos V, e escreve as condições do enunciado como igualdades. A restrição de que não se pode fracionar o diamante significa que V precisa ser tal que todas as partes resultantes sejam inteiras. Isso elimina a maioria dos valores e deixa apenas múltiplos de certos números como candidatos viáveis.
A lenda do diamante na prática
No meu caso, a primeira vez que me deparei com isso foi num desafio interno de engenharia onde o enunciado era uma variação: cinco servidores, divisão proporcional com sobras específicas, e a restrição de que nenhum recurso podia ser fracionado. A analogia direta com a lenda do diamante era óbvia para quem já tinha visto o padrão antes. O erro comum é tentar resolver substituindo valores aleatórios até dar certo. Isso funciona para versões simples com dois filhos, mas escala mal. Com três ou mais recipientes, a busca manual consome tempo demais e ainda assim pode passar por soluções válidas sem perceber. O que eu fiz foi escrever um script simples em Python que testava valores de V a partir de um e verificava se todas as condições do enunciado eram satisfeitas simultaneamente. Em vez de adivinhar, o programa retornou a solução em menos de dois segundos. O valor mínimo que funcionava era 45. Eu já tinha suspeitado que seria algum múltiplo de 9 por causa da fração do mais novo, mas o script confirmou e ainda mostrou que existiam infinitas soluções, só que 45 era a menor inteira positiva.
👉 Clique no botão abaixo para saber mais sobre o assunto!
O insight que ninguém conta nos tutoriais básicos é que o problema não é sobre o diamante em si. É sobre encontrar o menor múltiplo comum que satisfaz todas as restrições de divisibilidade ao mesmo tempo. Quando o enunciado fala em "metade mais meio", "um terço mais um terço" e assim por diante, você está lidando com frações que precisam resultar em números inteiros. O denominador comum das frações envolvidas te dá uma pista forte do caminho. No caso clássico com as frações meio, terço e nono, o mdc entre 2, 3 e 9 é 1, mas o mmc é 18. O valor 45 não é múltiplo de 18, então sua intuição inicial sobre mmc pode te levar a um beco sem saída se você não considerar os termos adicionais ("mais meio", "mais um terço"). Outro ponto que passa despercebido: a lenda do diamante tem uma variante famosa onde um estranho se oferece para emprestar uma peça adicional, permitindo que a divisão ocorra perfeitamente e depois é devolvida. Isso funciona porque o resto da divisão, somado à peça emprestada, completa exatamente o que falta para cada parte inteira. Não é mágica. É aritmética modular básica disfarçada de narrativa. Em problemas reais de alocação de recursos, essa lógica de "emprestar e devolver" aparece quando você precisa dividir cargas entre nós de forma que nenhum fique com fração. A solução frequentemente envolve ajustar o total com uma unidade fictícia, fazer a divisão, e depois remover a unidade do cálculo final.
Se você está implementando isso em código, aqui vai um ponto prático que causa dor de cabeça. Valores grandes de V podem fazer o script de força bruta demorar. Para um problema com três filhos e frações simples, testar até 1000 valores já é exagero. Mas se as frações tiverem denominadores maiores, como décimos sétimos ou vigésimos terceiros, o espaço de busca cresce rapidamente. Nesse cenário, a abordagem diofantina direta — resolver o sistema de equações e aplicar a restrição de integralidade — éOrders de grandeza mais rápida. Leva cerca de 50 milissegundos num hardware comum, contra alguns segundos ou minutos com busca iterativa. Há ainda um caso limite onde a lenda do diamante simplesmente não tem solução inteira. Isso acontece quando as condições do enunciado são incompatíveis. Por exemplo, se dois filhos devem receber quantidades que somadas excedem o total disponível independente do valor de V, não existe número inteiro que resolva. Um erro comum em competições é assumir que sempre há solução e gastar tempo procurando. A verificação rápida de consistência das condições antes de começar a calcular economiza esse tempo. Some todas as frações pedidas. Se a soma for maior que 1, já sabe que o problema, na forma como está escrito, é impossível.
Para quem quer praticar, existem variações com quatro ou cinco participantes, com frações mistas e com a adição de regras extras como "o mais velho recebe 10 unidades a mais que o do meio". Cada uma dessas mudanças altera a estratégia de resolução. As versões mais simples cabem numa calculadora. As complexas exigem modelagem algébrica ou auxílio computacional. O núcleo do problema nunca muda: encontrar valores inteiros que satisfaçam um sistema de restrições fracionárias simultâneas.