自定义加权比例

Custom Weighted Scale

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

  1. 变量 1 = 只是一些任意计数(可以是 0、1、5、20、50、100)
  2. 变量 2 = 自当前日期以来经过的天数(可以是 0、1、2、50、100)

我需要一个加权自定义公式,其中:

  1. 从当前日期开始的 0-30 天之间,变量 1(计数)从 100% 权重开始,变量 2 从 0% 权重开始。随着每一天过去 30 天,变量 1 的权重在第 30 天下降到 50%,变量 2(经过的天数)在第 30 天从 0% 增加到 50%
  2. 从当前日期起的 31-60 天之间,变量 1 开始从 50% 增加到 100%,在第 60 天达到峰值,变量 2 开始减少到 0,并在第 60 天变为 0
  3. 第 60 天以后,变量 1 始终为 100%,变量 2 显然为 0%

fabs 为returns 浮点数绝对值的函数。 那么公式可能如下所示:

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;
}