Algorithm 自定义加权秤
在任何编程语言中,我都需要一个公式,它能给我一个最终可以排序的值。我有两个变量:Algorithm 自定义加权秤,algorithm,math,language-agnostic,Algorithm,Math,Language Agnostic,在任何编程语言中,我都需要一个公式,它能给我一个最终可以排序的值。我有两个变量: 变量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%,
设
fabs
为返回浮点绝对值的函数。
那么公式可以如下所示:
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;
}
功能calcRank(浮点v1、浮点v2){
浮点数k=fabs(v2-30.0);
如果(k<30.0){
//规则1和2
秩=k/60.0+(60.0-k)*v1/60.0;
}否则{
//规则3
秩=v1;
}
返回等级;
}
使用哪种编程语言?如果你只是需要一个数学公式,那么你的网站就错了。如果你把鼠标悬停在上面并阅读标记wiki摘要,这是一个与数学相关的通用标记。它必须附有语言标签。仅仅因为标签存在,并不意味着它可以自己使用。我不是在问关于生命意义的问题。这个问题准确地表达了对任何编程语言中的数学公式的需求。这个问题是@TimJohnson。如果你想讨论你能做些什么来改进这篇文章,一个很好的地方就是元讨论。谢谢。我注意到一件事,如果v1是10,v2从10天变为20天,你会得到:1)abs(10-30)/60.0+(60.0-abs(10-30))*10/60.0=72)abs(20-30)/60.0+(60.0-abs(20-30))*10/60.0=8.5我认为第一个应该更高,不是吗?这是我的错,因为我没有澄清,在我的情况下,随着时间的推移,v1保持不变,排名应该更低,而不是更高。此外,如果v2保持不变,v1增加,排名也应该更高。上面的公式不能解释这一点,显然是因为我忘了把它包括在内。如果你能更新公式,我希望你能使用rank=(60.0-k)*v1/60.0规则1和规则2的代码>。