我必须按照以下问题解决。我必须从总价中计算出价。例如,客户想要支付2000美元作为总价,但是从这个价格来看,会增加成本:
- 使用价格为投标价格的10%,最低为10美元,最高为50美元
- 销售商价格:出价价格的2%
- 加价:5美元,出价在1到500之间 出价在501到1000之间10美元 在1001和3000之间出价15美元 出价超过3000美元的20美元
- 存储成本:100美元
从这一切来看,我必须计算出总价为2000美元的竞价价格。我不知道如何做到这一点。任何人都可以给我一些关于算法应该是什么的提示或答案吗?
编辑:好的,我得到了如何计算代数,现在我遇到的是如何在代码或伪代码中编写算法。有人有提示吗?
答案 0 :(得分:7)
您可以将所有这些费用表示为出价的函数。生成一个巨大的等式,它是所有这些函数的总和,并求解特定的最终值,例如:
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,由于我们可以使这些PIN部分保持不变,因此效果很好:
2000 = 50 + 10 + 5 + 100 + bid*1.02
1835 = bid*1.02
bid = 1799.0196078431372549019607843137
PIN表达式是最难分解的,因此您可能需要猜几次,直到您得到一些缩小您想要计算的出价范围的内容。