我有一个小数学问题,我需要根据成本价和最终数量来确定数量。
现在,这在理论上很简单,因为它只是最终金额/实际成本=数量,除了在我的例子中,实际成本根据数量变化。
数量=最终金额/(物料成本+间接成本),其中间接成本为浮动比例。
举个例子,如果我想卖羊赚500美元,每只羊的底价是50美元,但卖一只羊的成本是5美元,所以实际成本是每只羊55美元,但如果我卖两只羊,那么卖一只羊的成本就是7美元,所以实际成本是107美元,以此类推。
要尽可能接近最终数量(但不超过),而不必几乎无条件地循环,最优的方法是什么?
发布于 2011-09-28 16:44:58
基于你的间接费用总是非负的单调假设,你知道
0 <= Quantity <= Final Amount/Item Cost因此,binary search algorithm应该可以完成这项工作。
发布于 2011-09-28 16:46:09
请注意,间接成本是售出数量的函数。这意味着你的方程式是一种易于迭代的形式。您可以对数量进行初始猜测,将其插入等式的右侧,然后使用它来获得对数量的新猜测。一旦数量稳定下来,你就到了一个固定点,可以停止了。
对于在间接费用中具有规模经济的绵羊销售示例,我将从假设间接成本最小的情况下计算绵羊的数量开始。这可能是正确的,也可能高估了。这个过程所需的更新数量事先并不清楚,但我预计会很快收敛。
下面是它在Python中的样子,就像我写的伪代码一样:
import math
def overhead(n):
# Not given in problem, so I can't give an implementation
raise NotImplementedError("Sorry, don't know what this is")
def rhs(n, u, t):
return math.floor(t / (u + overhead(n)))
def best_quantity(unit_cost, total_cost, min_overhead):
prev_guess = 0
current_guess = math.floor(total_cost / (unit_cost + min_overhead))
while (current_guess != prev_guess):
prev_guess = current_guess
current_guess = rhs(current_guess, unit_cost, total_cost)
return current_guess
print best_quantity(50.0, 500.0, 0.0)https://stackoverflow.com/questions/7580237
复制相似问题