2

我正在寻找关于哪种投票算法最适合我的信息。我有一个基本的“向上/向下”投票系统,用户只能向上或向下投票产品。我想让它加权,这样一年前的产品就不会与全新的产品保持相同的标准。

我正在考虑做一个算法来计算过去 30 天内每种产品的票数。然而,这造成了一个不利因素。我不希望超过 30 天的投票变得毫无意义,但可能没有新的投票那么重要。然后可能 90 天后的投票权重甚至低于 30 天以上的投票。

有没有人知道已经这样做的算法,甚至可以在 PHP 中轻松计算?

4

2 回答 2

3

Google App Engine 有一个很好的例子来处理随时间“衰减”的投票。

它在 Python 中,但它应该满足您的需求。

于 2010-11-08T23:32:39.350 回答
0

我认为鉴于您的要求很简单,最好的做法是自己编写。

在不了解更多信息的情况下,我认为您的挑战将是决定是否将这些数据以预先加权的格式保存到数据库中(例如“投票时,给它 $this_year + 1 分”),是否计算权重您的数据库查询(例如,按分数排序,同时考虑赞成票和投票日期),或者您是否返回所有需要的数据并推断 PHP 中的权重。选择取决于您的应用程序需要做什么以及将有多少数据。

于 2010-11-08T23:56:45.167 回答