N组中总成本的计算算法

时间:2013-08-26 17:52:46

标签: algorithm math optimization

我的物品供应有限,购买物品时,价格相应上涨,以N为一组(每次购买N件物品,价格上涨)。在尝试购买多个对象时,计算总成本的最简单方法是什么?

例:
我有24 foo。对于购买的每N(示例使用3),价格增加1.
因此,如果我以1的价格购买1,那么剩下23个,剩下2个,价格为1 购买1后,有人想购买6.总费用是=(2 * 1)+(3 * 2)+(1 * 3)

2 个答案:

答案 0 :(得分:2)

借用RBarryYoung的符号,前N个项目每个花费B,第二个N项目每个花费B + I,第三个N项目花费B + 2 * I每个等等。

购买X物品:Q:= X div N(地板分割)整个团购,加R:= X mod N额外物品。前者花费Q * N *(B +(B +(Q - 1)* I))/ 2,因为随着项目成本的线性增加,平均项目成本等于第一项目成本B的平均值,并且最后一项成本,B +(Q - 1)* I.后一项成本为R *(B + Q * I),因此得到的函数f(X)为

f(X) := (Q * N * (B + (B + (Q - 1) * I))) div 2 + R * (B + Q*I).

要计算从X包含到X'独占的项目(零)的成本,请使用f(X') - f(X)

答案 1 :(得分:1)

好的,我认为现在这是正确的......


假设:

X  = Total Number of Items Bought
N  = Number of Items per Price Increment
B  = Base Item Price, before any Increments
I  = Price Increment per [N]

集:

J  = FLOOR((X-1)/N)+1

然后:

TotalCost = X*(B-I) + I*(X*J - N*J*(J-1)/2)