所以我有这个问题,我需要努力工作,但我无法找到一个好的算法。我得到了评论的平均值和总评论数。根据这两条信息,我需要随机生成多少5星,4星,3星,2星和1星评价。以下两个公式可以更好地解释问题究竟是什么。
Given Review Average (x)
Given Total Number of Reviews (y)
Find:
a = # of 5 star reviews
b = # of 4 star reviews
c = # of 3 star reviews
d = # of 2 star reviews
e = # of 1 star reviews
a + b + c + d + e = total # of reviews (KNOWN: y)
(5*a + 4*b + 3*c + 2*d + 1*e) = total number of stars = average(x) * total reviews(y)
这比编程更像是一种数学问题,但我需要能够编写某种算法来在JavaScript中以编程方式获取a,b,c,d和e。有没有人知道这样的好算法?谢谢!
答案 0 :(得分:0)
通过使所有内容成为5星评价,您可以获得最大可能积分。您可以通过将其中一家五星评价评为4星评价来减少这一总数。你可以继续减少一个,直到一切都是四星评价。再次,通过将四星评价评为三星评价来减少一个......
所以有一种方法可以获得从所有5星到所有1星的每个可能点总数,并且你可以获得每种可能总数的某种答案。
当然,您不需要逐点计算。您可以通过比较所有5星,所有4星...所有1星并且找到比目标更大的最小总数来计算总点数。然后,将您已定居的任何星形变为足够的下一个最小值,以达到您的确切目标。
(当然这看起来有点人为,但是你不能创建虚假的评论数字来推销产品,因为这会是虚假的广告,迟早会被抓住)。