Problema com equilibrio (balança)

07/05/2014

0

Saudações a todos!
Estou com um problema gigantesco para resolver e preciso do máximo de ajuda possível
Vamos ao problema...

Tenho 8 potes formando 4 pares (a1 e a2, b1 e b2, c1 e c2, d1 e d2) e tenho um número infinito de esferas com pesos variando de 0 a 10kg.
1) Ao clicar no botão de comando, o sistema deve pegar um número X de esferas e distribuir entre os potes de forma que a soma das esferas nos potes 1 seja igual a soma das esferas nos potes 2 ou no máximo 1 esfera de diferença. (Isso eu já fiz).
2) Após isso, caso o usuário queira, o sistema deve igualar os pesos nos potes 1 e nos potes 2 ou ter no máximo 1 kg de diferença.
2.1) Ao equilibrar os pesos, a regra 1 deve ser mantida, ou seja o sistema deve no máximo trocar 2 esferas de pote, passando de um pote 1 para o pote 2 e do 2 para o 1.
2.2) As esferas só podem ser trocadas entre os pares, sendo assim, as esferas nos potes a1 só podem ir para a2 e vice-versa.
2.3) Pode ser que as vez seja impossível equilibrar os potes, por exemplo: 3 esferas, 2 de 7kg e 1 de 10kg.

Alguém tem alguma ideia para me ajudar?
Estou tentando isso a mais de 1 mês e por enquanto nas situações de equilíbrio impossível o programa entra em loop. Mas onde é possível fazer o equilíbrio, o sistema funciona corretamente.

Desde já, agradeço a atenção e ajuda

Desesperadamente,
Julio Cesar
Julio Cesar

Julio Cesar

Responder

Posts

09/05/2014

Andre Santos..

Ola Julio

poste o seu codigo aqui p gente tentar te ajudar;.....
Responder

12/05/2014

Julio Cesar

Bom dia,
Não é com a programação que preciso resolver, é mais a lógica mesmo...
Eu preciso equilibrar a balança, mas preciso saber quando tentar parar de equilibrá-la para o programa não entrar em loop.
Estou usando recursividade...
Alguém conhece algum algoritmo de equilíbrio ou uma forma de equilibrar?
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar