0

ユースケース: オブジェクトの評価が 1 ~ 5 つ星であると仮定します。平均評価4.1ですでに50票です。ユーザーが投票 (1 ~ 5 スター) を行うと、評価を再計算する必要があります。

そのロジックを実装する方法は?問題は、すべての投票の価値がわからず、現在の評価と合計投票数だけがわからないことです。

4

3 に答える 3

4

newRating = (oldRating * oldCount + currentVote) / (oldCount + 1)

于 2012-06-29T08:55:06.653 に答える
0

仮定:

f = (1+2+3)/3 = 6/3 = 2
  = (2+2+2)/3 = 6/3 = 2

f=g であることがわかっています。現在の評価が 2 で、総投票数が 3 であることがわかっている場合、すべての投票の合計として 2*3=6 になります。次のように、平均値に 4 を追加します。

f = 6/3
f' = (6+4)/4 = 2.5
于 2012-06-29T09:00:34.647 に答える
0

基本的な算術演算から、(50 * 4.1 + newvote) / 51 はすべての投票の平均と同じであることがわかります。繰り返し行うと四捨五入エラーが発生し、一定数の投票の後、1 票で平均化することに煩わされる価値さえありませんが、基本的な公式は適切です。

于 2012-06-29T08:54:39.830 に答える