我試圖在SQL中實現衰減機制,是基於已過去了的時間量。所以隨着時間的推移,項目會「衰減」(基於以前的產品)。在SQL中將操作的結果乘以n次操作?
這是通過具有「衰減」值,生成的日期和AKA的時間的衰減值的應用之間的量的週期性來完成。
所以如果一個項目有25%的衰減,從1開始,隨着新一代今天和一個日起3分鐘前,將已經腐爛導致「權重值3倍:
1米 - 1.25
2米 - 1.5625
3米 - 1.953125
等
s * ((1+d)^n)
where
s = starting value
d = decay % as decimal
n = number of elapsed periods
對於相關的SQL之中:
ORDER BY
1.00 * POWER((1.00+[Decay]),CONVERT(float, DATEDIFF(minute,[GenerationDate],GETUTCDATE())))
然而這會導致溢出,所以我現在決定在WHERE語句東西會阻止我由是太舊,導致溢出的物品訂購,或者至少使其達到小數的最大值。
參見維基百科的文章[對數恆等式(https://en.wikipedia.org/wiki/Logarithm#Logarithmic_identities) –
我喜歡這個。雖然我記得有關從學校登錄的東西,但我從未想過我會看到真實的生活示例:) – kurin123