自定义加权比例
Custom Weighted Scale
我需要任何编程语言的公式,它会给我一个我最终可以排序的值。我有 2 个变量:
- 变量 1 = 只是一些任意计数(可以是 0、1、5、20、50、100)
- 变量 2 = 自当前日期以来经过的天数(可以是 0、1、2、50、100)
我需要一个加权自定义公式,其中:
- 从当前日期开始的 0-30 天之间,变量 1(计数)从 100% 权重开始,变量 2 从 0% 权重开始。随着每一天过去 30 天,变量 1 的权重在第 30 天下降到 50%,变量 2(经过的天数)在第 30 天从 0% 增加到 50%
- 从当前日期起的 31-60 天之间,变量 1 开始从 50% 增加到 100%,在第 60 天达到峰值,变量 2 开始减少到 0,并在第 60 天变为 0
- 第 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;
}
我需要任何编程语言的公式,它会给我一个我最终可以排序的值。我有 2 个变量:
- 变量 1 = 只是一些任意计数(可以是 0、1、5、20、50、100)
- 变量 2 = 自当前日期以来经过的天数(可以是 0、1、2、50、100)
我需要一个加权自定义公式,其中:
- 从当前日期开始的 0-30 天之间,变量 1(计数)从 100% 权重开始,变量 2 从 0% 权重开始。随着每一天过去 30 天,变量 1 的权重在第 30 天下降到 50%,变量 2(经过的天数)在第 30 天从 0% 增加到 50%
- 从当前日期起的 31-60 天之间,变量 1 开始从 50% 增加到 100%,在第 60 天达到峰值,变量 2 开始减少到 0,并在第 60 天变为 0
- 第 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;
}