【发布时间】:2019-05-24 11:31:03
【问题描述】:
我正在开发一个 PHP 逆向拍卖系统。我的客户从不同的供应商那里获得针对他们要求的产品/服务的投标。在向登录的客户显示收到的出价时,我需要根据以下标准根据加权平均值进行排序:
- 价格 (40%) -> 最低价好。
- 供应商评级 (20%) -> 评级 = 1-5(5 为最佳)。
- 交付选项 (10%) -> 更多交付选项提供最好的。
- 距离 (10%) -> 与客户位置的距离最短。
- 支付方式 (10%) -> 更多支付方式提供最好的。
到目前为止,我已经能够创建以下公式:
$weightage = ($price*.40) + ($rating*.20) + ($delivery_options*.10) + ($distance*.10) + ($payment_methods*.10);
我需要在顶部显示具有最高权重值的出价。我对基于最适合客户的重量的加/减感到困惑,即如果价格较低,那么这应该被认为是最适合客户的,我应该增加重量还是减少重量?
任何帮助将不胜感激。谢谢
【问题讨论】:
-
好吧,如果您的某些标准越低越好,而其他标准越高,那么您至少必须通过相应地修改符号来反映这一点——因为最终结果只是一个数字,因此,对于对客户“更好”的所有内容,该数字必须上升(或下降,具体取决于您希望对结果进行排序的方式)。
-
但除此之外,我不太确定将这些值与从百分比派生的因子相乘是否有意义。将评级乘以 0.2,最终结果将增加 0.2 到 1 之间的值。价格乘以 0.4,因此两个价格之间的差异只需 2.5,就可以完全“抵消”评级 5 的影响。或者换句话说,等级 4 和等级 5 之间的差异(仅最终重量的 0.2)会产生相同的效果,就像两件商品之间只有 0.5 的价格差异一样。
-
非常感谢@04FS,这真的很有帮助。我已经在下面发布了答案:)
标签: php formula average weighted