掲示板に投票システムを導入する予定で、ユーザーに賞を与えるための優れた効率的なアルゴリズムを探しています。私が考えている投票システムはとてもシンプルです。説明させてください。
- ユーザーが作成したすべての投稿は、ボード上の他のすべてのユーザーによって 1 回だけ賛成または反対の投票を受けることができます。ユーザーは自分の投稿に投票できません。
- 賛成票には 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 までの数値を取得するための適切なアルゴリズムがわかりません。