|
在很多游戏中都会提供给玩家批量使用道具的需求。
策略游戏中批量使用加速道具。
如卡牌游戏中批量使用经验道具。
但是市面上大部分游戏的一键使用只能支持到批量使用一种道具,玩家要自行选择先用哪个后用哪个。
在刀塔传奇中选择的算法则是先把小经验道具用完,再选择大经验道具。这样势必在某些情况下会产生浪费。
比如升到目标等级需要560经验。
此时我拥有10经验的道具和100经验的道具各8个。
按照最优算法,应该是使用6个10经验道具和5个100经验道具。
但是按照刀塔传奇的算法,会使用8个10经验道具和5个100经验道具。
于是我们对此算法进行了优化。
用excel计算过程在附件中。
用语言描述该过程是这样的:
1、假设是一个用现金买东西的过程,卖家不找零。
2、先把所有钱掏出来。
3、然后从最高面值的往回拿,比如拿N+1张就不够付清货款,则就拿回N张。
4、然后往回拿第二高面值的,拿回数量同理。
5、直到把最小面值的也计算过一次为止。
6、剩余的没有拿回的钞票就是应付款的最优金额解。
|
|