0

我的物品供应有限,并且随着物品的购买,价格会以 N 组的形式相应上涨(每次购买 N 件物品,价格都会上涨)。在尝试购买大量物品时,计算总成本的最简单方法是什么?

示例:
我有 24 英尺。对于购买的每 N 个(使用 3 的示例),价格增加 1。
因此,如果我以 1 的价格购买 1,那么剩下 23 个,以 1 的价格还剩下 2 个。
购买 1 后,有人希望购买 6 个。那么总成本为 = (2*1)+(3*2)+(1*3)

4

2 回答 2

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).

于 2013-08-26T19:12:48.193 回答
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)
于 2013-08-26T18:15:18.930 回答