Ae pessoal, to com um probleminha que virou um problemão.
o problema não é tanto com a implementação e sim com o algoritmo.
Eu tenho o seguinte problema: Tenho 3 jarros d’água.
a agua não pode ser jogada fora
não posso receber agua de lugar nenhum
so pode esvaziar um jarro em outro, ou completar até a borda
ou seja, tenho 3 vazos e tenho que manipular agua entre eles.
Ex: tenho essa entrada
06 10 15
05 07 08
00 05 15
1ª linha - capacidade dos jarros
2ª linha - qta agua tem nos jarros
3ª linha - qta agua cada jarro tem q ficar no final.
essa foi facil ver que é soh jogar a agua do 2º no 3º e dps do 1º no segundo, ou seja, executei 2 movimentos.
é este o algoritmo que não consigo fazer, ler estas informações (isso ja faz) e calcular qtos movimentos são necessários para q os jarros fiquem com qtidade de agua final.
eu tenho que fazer este algoritmo funcionar com 10 entradas diferentes.
Sim, mas poder de processamento humano ainda é - muito - caro. Então, se não é pra se preocupar com a otimização do código, faça o favor de escrever código decente e legível por outros.
Sim, mas poder de processamento humano ainda é - muito - caro. Então, se não é pra se preocupar com a otimização do código, faça o favor de escrever código decente e legível por outros.[/quote]
Independente disso, se você é pago para fazer uma tarefa, faça-a bem feita.
Obviamente, “bem feita” é um conceito muito subjetivo e que valeria páginas de discussão aqui.
Por que subir o nível de abstração até esse ponto? Assim começaremos uma discussão teórica, abstrata, conceitual… enfim… inútil. Vamos nos ater ao problema inicial.
Por que a solução utilizando “backtracking” não seria aceitável?
Ok, desculpe. Não estou me preocupando muito com a solução (mesmo porque o problema apresentado é um típico CSP, logo faz sentido usar a sua solução). É que eu já ouvi a seguinte frase:
Pelo menos umas 3 vezes esta semana e isso me deixa muito frustrado. Mas, enfim, deixa para lá. Vamos voltar ao foco da questão