首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >根据价格和金额查找最近的数量以获取

根据价格和金额查找最近的数量以获取
EN

Stack Overflow用户
提问于 2011-09-28 16:18:58
回答 2查看 113关注 0票数 0

我有一个小数学问题,我需要根据成本价和最终数量来确定数量。

现在,这在理论上很简单,因为它只是最终金额/实际成本=数量,除了在我的例子中,实际成本根据数量变化。

数量=最终金额/(物料成本+间接成本),其中间接成本为浮动比例。

举个例子,如果我想卖羊赚500美元,每只羊的底价是50美元,但卖一只羊的成本是5美元,所以实际成本是每只羊55美元,但如果我卖两只羊,那么卖一只羊的成本就是7美元,所以实际成本是107美元,以此类推。

要尽可能接近最终数量(但不超过),而不必几乎无条件地循环,最优的方法是什么?

EN

回答 2

Stack Overflow用户

发布于 2011-09-28 16:44:58

基于你的间接费用总是非负的单调假设,你知道

代码语言:javascript
复制
0 <= Quantity <= Final Amount/Item Cost

因此,binary search algorithm应该可以完成这项工作。

票数 0
EN

Stack Overflow用户

发布于 2011-09-28 16:46:09

请注意,间接成本是售出数量的函数。这意味着你的方程式是一种易于迭代的形式。您可以对数量进行初始猜测,将其插入等式的右侧,然后使用它来获得对数量的新猜测。一旦数量稳定下来,你就到了一个固定点,可以停止了。

对于在间接费用中具有规模经济的绵羊销售示例,我将从假设间接成本最小的情况下计算绵羊的数量开始。这可能是正确的,也可能高估了。这个过程所需的更新数量事先并不清楚,但我预计会很快收敛。

下面是它在Python中的样子,就像我写的伪代码一样:

代码语言:javascript
复制
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)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7580237

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档