【问题标题】:Calculating bid price from total cost从总成本计算投标价格
【发布时间】:2014-09-30 23:14:34
【问题描述】:

我必须解决以下问题。我必须从总价计算出标价。例如,一个客户想要支付 2000 美元作为总价,但是从这个价格中,有额外的成本:

-使用价格是投标价格的 10%,最低 10 美元,最高 50 美元

-卖家价格:投标价格的2%

-加价:1 到 500 之间的出价为 5 美元 501 到 1000 之间的出价 10 美元 1001 到 3000 之间的出价 15 美元 出价超过 3000 美元需要 20 美元

-存储成本:100$

从这一切中,我必须计算出总价为 2000 美元,例如。我有点不知道如何做到这一点。谁能给我一些关于算法应该是什么的提示或答案?

编辑:好的,我知道了如何计算代数,现在我陷入困境的是如何用代码或伪代码编写算法。有人知道了吗?

【问题讨论】:

    标签: algorithm math


    【解决方案1】:

    您可以将所有这些成本表示为投标价格的函数。生成一个巨大的方程,它是所有这些函数的总和,并求解一个特定的最终值,例如:

    usage cost(bid) = PIN(bid*0.10, 10, 50)
    seller cost(bid) = bid*.02
    added cost(bid) = PIN(ceiling(bid/500)*5, 5, 10) + PIN(ceiling((bid - 1000)/2000)*5, 0, 10)
    storing cost(bid) = 100
    

    所以最终成本是这样的:

    final cost(bid) = PIN(bid*.1, 10, 50) + pin(ceiling(bid/500)*5, 5, 20) + PIN(ceiling((bid - 1000)/2000)*10, 0, 20) + bid*.02 + 100 + bid
    

    求解一个特定的值,你就完成了。

    例如,如果您希望总成本为 2000 美元:

    2000 = PIN(bid*.1, 10, 50) + pin(ceiling(bid/500)*5, 5, 10) + PIN(ceiling((bid - 1000)/2000)*5, 0, 10) + bid*.02 + 100 + bid.
    

    出价必须至少 > 1500 且

    2000 = 50 + 10 + 5 + 100 + bid*1.02
    1835 = bid*1.02
    bid = 1799.0196078431372549019607843137
    

    PIN 表达式是最难计算的,因此您可能需要猜测几次,直到得到缩小要计算的出价范围的东西。

    【讨论】:

    • 如果我理解你的话,我认为你不理解我.. :P 我没有投标价格作为开始。我所拥有的只是总价,而我必须计算的是 BID 价格。如我错了请纠正我。谢谢你的回答!
    • 对。鉴于最终成本(出价)是某个已知值,您想解决出价问题。您给出了 2000 作为最终成本的示例,因此您可以从该值倒推以确定出价。
    • 我将添加您的具体示例以更好地解释该怎么做。
    • 非常感谢您的明确回答,但 PIN 到底是什么?抱歉英语不是我的母语。
    • 它取值并使其至少与第二个参数一样大,最多与第三个参数一样大。即 pin(x, 0, 1) 将返回与 x 最接近的大于 0 且小于 1 的数字。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多