単純な代数:
AvgVotes = すべての投票の合計 / すべてのアイテムの合計
AvgRating = すべてのアイテムの賛成票の合計 * 5 / すべての投票の合計
CurVotes = 現在のアイテムに対する投票数
CurRating = 現在のアイテムに対する賛成票の合計 * 5/現在のアイテムに対する投票数
TotalVotes = すべての投票の合計 + 現在のアイテムに対する投票の合計
((AvgVotes * AvgRating) + (CurVotes * CurRating)) * 5 / TotalVotes
したがって、A の重みを評価する数値を入力すると...
平均投票数 = 1000
AvgRating = 0 (この計算では、評価しているアイテムの数値を含めないでください)
現在の投票数 = 1000
現在のレート = 500 * 5 / 1000 = 2.5
総投票数 = 2000 + 1000 = 3000
((1000 * 0) + (1000 * 2.5)) * 5 / 3000 = 4.166
追加するのを忘れていました。上記の計算または合計には、投票のない項目を含めないでください。そうしないと、重みがなくなります。
編集 - 簡略化されたソリューション:
実行できる問題に対する単純化された解決策があることに注意してください。理解のために手書きの形式を示しただけです。圧縮されたアルゴリズムは次のようになります。
定義:
SET = 投票数が 0 より大きい、現在の評価ターゲットに関係のないもの。
TARGET = 現在評価しようとしている要素
25*(((SET の賛成票の合計)/(SET アイテムの合計)) + (TARGET の賛成票の合計)) / (TARGET の賛成票の合計 + SET の投票の合計)
明確化と証明のために、「A」を評価する数値を再度入力します。
(25*((0/2)+500)) / (1000+2000) = 4.166