<p>我也不确定这是不是问这种问题的正确地方。似乎您在要求算法或<strong>一些标准业务规则</strong>但需要最终代码。</p>
<p>好吧,我发布了一个方法来提出新的想法。我构造了一个算法列表,并测试顶级值:</p>
<pre><code>import math
fs = [
('Plain coef', lambda m: math.log(m[1]* units_coef)
+ math.log(m[2]* money_coef) ),
('Coef into log', lambda m: m[1]* units_coef
+ m[2]* money_coef ),
('Coef out log', lambda m: math.log(m[1])* units_coef
+ math.log(m[2]) * money_coef ),
('Coef out log2', lambda m: math.log(m[1],2)* units_coef
+ math.log(m[2],2) * money_coef ),
]
movings = [ ( 'product1', 1500, 75.00 ),
( 'product2', 2, 90000.00 ),
( 'product3', 1200, 8000.00 ),
( 'product4', 6, 4000.00 ),
( 'product5', 500, 1000.00 ),
( 'product6', 800, 1200.00 ),
( 'product7', 300, 800.00 ),
]
units_coef = 1.1
money_coef = 0.04
for (n,f) in fs:
print ''
print n
print '==============================================='
for i in sorted( movings,
key = lambda m: f(m) ,
reverse=True)[:3]:
print i, f(i)
</code></pre>
<p>结果:</p>
^{pr2}$