我目前正在为我计划很快推出的新网站编写算法。索引页面将显示当前“最热门”的帖子。要考虑的变量是:
- 票数
- 帖子的争议程度(# 介于 0-1 之间)
- 自发布以来的时间
我想出了两种可能的算法,第一种也是最简单的是:
controversial * (numVotesThisHour / (numVotesTotal - numVotesThisHour)
Denom = numVotesTuisHour if numVotesTotal - numVotesThisHour == 0
最高的数字是最热的
我的另一个选择是使用类似于 Reddit 的算法(除了分数随着时间的推移而降低):
[controversial * log(x)] - (TimePassed / interval)
x = { numVotesTotal if numVotesTotal >= 10, 10 if numVotesTotal < 10
最高的数字是最热的
第一个算法将允许较旧的帖子在未来再次变得“热门”,而第二个则不会。
所以我的问题是,你认为这两种算法中哪一种更有效?你认为哪一个会展示当下真正“火爆”的话题?您能想到使用其中一种的优点或缺点吗?我只是想确保我不会忽略任何内容,以便确保内容尽可能相关。任何反馈都会很棒!谢谢!