我目前正在开发一个网站,用户可以在其中分享,下载,评分和收藏某些文件。为了显示最受欢迎的文件,我提出了一种算法来计算每个文件的得分值。
目前,得分包括50%的喜欢/不喜欢比例和50%的下载量(我使用指数函数和上限)。 但是,此算法既不包含文件的年龄,也不包括收藏的数量。
如何将这些因素包括在内以获取最受欢迎的文件?那里有最好的做法吗?我目前正在开发PHP,但Pseudocode当然很好。
提前致谢,
CrushedPixel
答案 0 :(得分:2)
Reddit排序帖子的方式非常好用。如果你不知道,Reddit,首先只是upvotes。在一段时间后(我不知道),它会增加帖子的权重,允许更新的帖子浮出水面。我建议您使用这个想法作为6种不同分类方法的基础,分为3组。这些组将是收藏夹,下载和L / D比率(每个组将按大多数/最少排序6种排序方法排序)。由于每个视频都将所有这些数字存储在某种数据库中,因此您可以对所有这些数据使用相同的算法。只需用选择的排序方法替换变量即可。对于第4个通用目的,可以在所有其他3个分拣系统上取平均值。例如,如果一个视频在L / D上是第一,在收藏夹上是第二,在下载时是第二,它与最喜欢的第一个视频,L / D中的第二个和下载中的第三个视频竞争。第1个帖子的平均值是1和1/3,而第2个帖子的平均值是2(越低越好)。因此,第一篇文章在整体列表中排名第一,第二篇文章在整体列表中排名第二。
希望这有帮助! 弧度