如何修改这个(简单)方程式以产生我想要的结果?

时间:2011-06-11 22:19:09

标签: formula

我有一个包含817个项目的数据库,每个项目的“等级”为1到817(数字越小,“项目越好”)。该等级基于许多表明质量的因素。

现在,我需要为这些项目分配一个“值”,其中等级1的项目的估值最高,值随着等级(非线性)而减少。

最简单的首次尝试是简单地选择任意基数(100,000)并除以等级:

$value = 100000 / $rank;

/**
 * Rank : Value
 * 1    : 100,000
 * 2    : 50,000
 * 3    : 33,333
 * etc.
 */

这会产生指数衰减,如此图像中的红线所示:

graph http://i51.tinypic.com/117w9vr.png

但是,我希望以一种看起来更像上面蓝线的方式来评价这些物品。我怎样才能改变我的公式来实现这个目标?

3 个答案:

答案 0 :(得分:2)

首先尝试1/sqrt(x)(即pow(x, -1/2))。如果仍然不够慢,请尝试较小的分数功率。

答案 1 :(得分:0)

你为什么不选择线性?

value = n - rank

其中n是您的商品数量,即817。

答案 2 :(得分:0)

我没有尝试过但是使用指数而不是除以1000的基数2.

<强>更新

value = 2 pow (n-rank)