其他
算法题:140 克盐如何 3 次分成 50 克、90 克?
The following article is from 小K算法 Author 小K算法
02
不用砝码的情况
但上面分出的数值,是无法组合成50或者90的。所以接下来就考虑借助砝码的情况。
03
借助砝码的情况
这样就把所有的可能枚举完了,接下来就要看如果用这些方式组合成目标数。
04
用码组合
称一次:
根据上面一次的结果来看,盐放两边和砝放两边都无法再组合。但如果盐放一边可以多一个砝。
刚好发现如果先分成9+61。再用多的9+2来分61刚好得50,又得一个解。
05
用砝码拼凑
很容易可以发现下面的红色加起来刚好就是50。
只有2个砝码,2克和7克的,如果用这2个来随意组合。
设个2克,个7克,即,整数解如下:
x | y |
---|---|
18 | 2 |
11 | 4 |
4 | 6 |
重新组合成。
那么最后一次要先得到,又得到一组解。具体过程如下:
第一次,第二次:
06
过程抽象
初始条件:开局一个天平,2,7克砝码,140g盐。
决策:第2,3小节里,不用砝码,和借助砝码的多种方法。
阶段:总共称三次,每一次就是一个阶段。
状态:每过一个阶段,能得到的不同的情况。
状态转移:根据上面不同的决策转移到下一个状态。
07
总结
- EOF -
觉得本文有帮助?请分享给更多人
推荐关注「算法爱好者」,修炼编程内功
点赞和在看就是最大的支持❤️