我的物品供应有限,购买物品时,价格相应上涨,以N为一组(每次购买N件物品,价格上涨)。在尝试购买多个对象时,计算总成本的最简单方法是什么?
例:
我有24 foo。对于购买的每N(示例使用3),价格增加1.
因此,如果我以1的价格购买1,那么剩下23个,剩下2个,价格为1
购买1后,有人想购买6.总费用是=(2 * 1)+(3 * 2)+(1 * 3)
答案 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)