所以我有一个工作上需要解决的问题,但是我想不出一个好的算法。我得到了评论的平均值和总评论的数量。从这两条信息中,我需要随机生成多少条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。有没有人知道解决这类问题的好算法?谢谢!
发布于 2014-12-19 13:58:28
你可以通过将所有内容都设为5星评价来获得最大可能的总分。你可以通过将5星评论中的一个设为4星评论来将这个总数减少1。您可以继续减少1,直到所有内容都是4星级评审。同样,通过将4星评审设置为3星评审来减少1。
所以有一种方法可以得到从所有5星到所有1星的所有可能的点数总和,你可以得到每个可能的总分的某种类型的答案。
当然,您不需要逐点计算这个值。你可以通过比较总分和全5星,全4星来开始你的搜索。所有的1星,找到比你的目标大的最小的总数。然后,将你选定的任何一颗星更改为下一个最小的值,以达到您的确切目标。
(当然,这看起来有点做作,但你不能创造虚假的评论数字来推销产品,因为这将是虚假的广告,迟早你会被抓到)。
https://stackoverflow.com/questions/27557734
复制相似问题