-1

私が取り組んでいるアプリケーションの評価システムを開発しようとしています。基本的に、このアプリでは、オブジェクトを 1 から 5 (星で表されます) で評価できます。しかし、もちろん、評価数を保持し、評価数自体を追加することは現実的ではないことを知っています.

それで、最初に頭に浮かんだのは、受け取った評価を与えられた合計評価で割ることでした. たとえば、オブジェクトがユーザーから評価 2 を受け取り、そのオブジェクトが評価された回数が 100 の場合、2/100 を追加することができます。ただし、この方法は十分ではないと考えています。1)単純なアプローチ 2)オブジェクトが評価された回数を取得するには、時間の複雑さ O( n)

だから私は、この問題に取り組むための代替案とおそらくより良い方法を考えていましたか?

4

4 に答える 4

1

これには多くのアプローチがありますが、その前にチェックしてください

  1. すべてのフィードバック提供者が同等に扱われるか、一部が他のフィードバック提供者よりも重要である場合(パネルレビューなど)
  2. 目的が平均または任意のスコアバンドなどのみを提供することである場合。このWebサイトのようなシナリオを検討してください-合計レピュテーションスコアを表示します
  3. そして、はい-平均を計算する場合は、フィードバックの合計と数を取得してから、それを計算する必要があります-それは単純な数学です。ただし、他の方法が必要な場合は、より多くの計算サイクルに備えてください。データベースヒットと計算サイクルのバランスを取りますが、それは設計の次の段階です。まず、要件とソリューションへのアプローチを整えます。
于 2012-11-05T07:54:26.860 に答える
1

評価を計算するには、星 1 つ、星 2 つなどの個別のカウンターを保持する必要があると思います。計算する必要があります。rating = (1*numOneStars+2*numTwoStars+3*numThreeStars+4*numFourStars+5*numFiveStars)/numOneStars+numTwoStars+numThreeStars+numFourStars+numFiveStars)

このようにして、Amazonのように、1つ星に投票した人の数と5つ星に投票した人の数も表示できます...

于 2012-11-05T07:58:13.553 に答える
0

星の数に対する上下投票メカニズムを検討しましたか? 問題を直接解決するわけではありませんが、YouTube、Facebook、StackOverflow などの他のサイトはすべて、星ベースの評価よりもはるかに効果的な +/- 投票を使用していることに注意してください。

于 2012-11-05T16:32:39.897 に答える