Hoc*_*f45 6 algorithm math ranking
我目前正在为我计划即将推出的新网站编写算法.索引页面将显示当前"最热门"的帖子.要考虑的变量是:
我提出了两种可能的算法,第一种也是最简单的算法是:
controversial * (numVotesThisHour / (numVotesTotal - numVotesThisHour)
Denom = numVotesTuisHour if numVotesTotal - numVotesThisHour == 0
Run Code Online (Sandbox Code Playgroud)
最高的数字是最热门的
我的另一种选择是使用类似于Reddit的算法(除了随着时间的推移得分减少):
[controversial * log(x)] - (TimePassed / interval)
x = { numVotesTotal if numVotesTotal >= 10, 10 if numVotesTotal < 10
Run Code Online (Sandbox Code Playgroud)
最高的数字是最热门的
第一种算法将允许较旧的帖子在将来再次变得"热",而第二种算法则不会.
所以我的问题是,您认为这两种算法中的哪一种更有效?您认为哪一个会显示真正的"热门"主题?你能想到使用一个优于另一个的优点或缺点吗?我只是想确保我不忽视任何事情,这样我才能确保内容尽可能相关.任何反馈都会很棒!谢谢!
我是不是错过了什么。在第一个公式中,分母中有 numVotesTotal。因此,一直以来较高的票数将意味着即使它不是那么老,它也永远不会那么热。
例如,如果我有两个帖子 - P1 和 P2(两者同样有争议)。假设 P1 的 numVotesTotal = 20,P2 的 numVotesTotal = 1000。现在,在最后一小时内,P1 的 numVotesThisHour = 10,P2 的 numVotesThisHour = 200。
根据算法,P1比P2更有名。这对我来说没有意义。