我计划为我的公告板引入一个投票系统,并且我正在寻找一种良好且有效的算法来奖励用户。我正在考虑的投票系统非常简单。让我给你解释一下。
- 用户发表的每个帖子只能被董事会上的其他所有用户投票赞成或反对一次。用户不能投票给自己的帖子。
- 赞成票需要 1 分,反对票需要 2 分(只是为了避免简单的抨击和围攻)。
每 X 天,板上的每个用户都会收到 A 点数,用于上下投票,投票基于一个简单的公式:
A = 5 + AwardUserPerformance(); Where AwardUserPerformance() is a function that returns a value between 0 and 10 depending on the performance of the user during the past X days.
我可以在 AwardUserPerformance() 函数中使用以下变量来计算用户的表现:
- T = 用户在过去 X 天内在线花费的时间
- P = 用户在过去 X 天内发表的帖子数
- V = 过去 X 天内对用户帖子的反对票和赞成票的总和(例如,如果用户收到 3 次赞成票和 2 次反对票,则 V=1)
我只是想不出一个好的算法来从这些变量中获取 0 到 10 之间的数字。