现有一只装满12斤油的瓶子和三只分别装10斤、6斤和3斤油的空瓶,如何才能将这12斤油分成三等份。如果4个瓶子分别要求装5斤、3斤、2斤、2斤,又能否实现?用Java代码怎么实现算法或者python。
3斤瓶是空的用便捷的方法分出5斤酒是吧,3斤瓶剩2斤,10斤瓶剩1斤。分次三次用3斤装入7斤瓶。然后7斤瓶倒回10斤瓶,7斤瓶就是5斤了。3斤瓶倒入7斤瓶,7斤瓶剩2斤,这样,10斤瓶有8斤,再装满个3斤瓶倒入7斤瓶
三等分:
1. 先装满10斤,用这10斤分别装满6斤和3斤的瓶子,然后把6斤和3斤的到回12斤瓶,10斤瓶子里剩下的1斤到在6斤的瓶子里。按瓶子的容量大小排序是12、10、6、3,每个瓶子里油的重量分别是11、0、1、0。
2. 再装满10斤,用这10斤装满3斤的瓶子,此时每个瓶子油的重量分别是1、7、1、3
3. 将3斤瓶子里的油,倒入6斤的瓶子;用10斤瓶里剩下的7斤再次装满3斤瓶,再将这3斤装到12斤瓶中。此时除了3斤的瓶子,其他瓶子都是4斤油了。
还想请教一下解决问题的思路和方法。
@让我发会呆:
5 3 2 2 这种情况没想出来;
等分这种情况的思路大概是,列出各容器的容量,计算各容量的差值,列出可能的组合的矩阵(每行的和是总量,每列的最大值各容器的容量)。