自定义加权比例

时间:2015-08-03 14:16:34

标签: algorithm math language-agnostic

我需要任何编程语言中的公式,这将给我一个我最终可以排序的值。我有2个变量:

  1. 变量1 =只是一些任意计数(可能是0,1,5,20,50,100)
  2. 变量2 =自当前日期以来经过的天数(可以是0,1,2,50,100)
  3. 我需要加权自定义公式,其中:

    1. 从当前日期起0-30天之间,变量1(计数)从100%重量开始,变量2从0%重量开始。由于每天最多30天,变量1的重量在第30天下降到50%,变量2(过去的天数)在第30天从0%增加到50%
    2. 从当前日期开始的31-60天之间,变量1在第60天开始从50%增加到100%达到峰值,变量2开始减少到0并在第60天变为0
    3. 超过第60天,变量1始终为100%,变量2明显为0%

1 个答案:

答案 0 :(得分:2)

fabs成为返回float的绝对值的函数。 然后公式可能如下所示:

function calcRank(float v1, float v2) {
    float k = fabs(v2-30.0);
    if (k < 30.0) {
        // Rule 1 and 2
        rank = k/60.0 + (60.0-k) * v1 / 60.0;
    } else {
        // Rule 3
        rank = v1;
    }
    return rank;
}