Show! No seu princípio, está próximo do TabNews que é uma briga entre os "pontos" e a "gravidade" (quanto tempo passou).
O algoritmo atual do TabNews abaixo foi ispirado nessa publicação: How Hacker News ranking algorithm works
function getContentScore(contentObject) {
const tabcoins = contentObject.tabcoins;
const secondsSinceEpoch = Math.floor(new Date() / 1000);
const publishedAtInSeconds = Math.floor(new Date(contentObject.published_at) / 1000);
const ageInSeconds = secondsSinceEpoch - publishedAtInSeconds;
const ageBase = 60 * 60 * 1; // 1 hour
const boostPeriodInSeconds = 60 * 10; // 10 minutes
const initialBoost = ageInSeconds < boostPeriodInSeconds ? 10 : 1;
const tabcoinsAntiGravity = 1.5;
const tabcoinsWithAntiGravity = Math.pow(Math.abs(tabcoins), tabcoinsAntiGravity);
const tabcoinsWithCorrectSign = tabcoins > 0 ? tabcoinsWithAntiGravity : tabcoinsWithAntiGravity * -1;
const gravity = 1.8;
const scoreDecimals = (tabcoinsWithCorrectSign + initialBoost) / Math.pow(ageInSeconds + ageBase, gravity);
const finalScore = scoreDecimals * 10000;
return finalScore;
}
Sendo que a regra principal é esta:
(tabcoinsWithCorrectSign + initialBoost) / Math.pow(ageInSeconds + ageBase, gravity)
Em resumo: uma força exponencial positiva das TabCoins contra uma força exponencial negativa da idade da publicação.