我的物品供应有限,并且随着物品的购买,价格会以 N 组的形式相应上涨(每次购买 N 件物品,价格都会上涨)。在尝试购买大量物品时,计算总成本的最简单方法是什么?
示例:
我有 24 英尺。对于购买的每 N 个(使用 3 的示例),价格增加 1。
因此,如果我以 1 的价格购买 1,那么剩下 23 个,以 1 的价格还剩下 2 个。
购买 1 后,有人希望购买 6 个。那么总成本为 = (2*1)+(3*2)+(1*3)
我的物品供应有限,并且随着物品的购买,价格会以 N 组的形式相应上涨(每次购买 N 件物品,价格都会上涨)。在尝试购买大量物品时,计算总成本的最简单方法是什么?
示例:
我有 24 英尺。对于购买的每 N 个(使用 3 的示例),价格增加 1。
因此,如果我以 1 的价格购买 1,那么剩下 23 个,以 1 的价格还剩下 2 个。
购买 1 后,有人希望购买 6 个。那么总成本为 = (2*1)+(3*2)+(1*3)
借用 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)
.
好的,我认为现在这是正确的......
鉴于:
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)