【问题标题】:How to find the amount of each review based on the average and total number of reviews如何根据平均评论数和总评论数找到每条评论的数量
【发布时间】:2014-12-18 23:48:33
【问题描述】:

所以我有这个问题需要解决,但我想不出一个好的算法。我得到了评论的平均值和总评论的数量。从这两条信息中,我需要随机生成多少个 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。有谁知道这样的好算法?谢谢!

【问题讨论】:

  • 请参阅下面的答案,但我可能会误解。您是否正在尝试找到可以给您答案的abcde 的所有排列?
  • 不是所有的排列,只有一个。请记住,可能会有超过一百万条评论,但显然平均评论将在 1-5 之间。该算法必须足够强大以处理大量评论。
  • “只有一个”?哪一个?任何人?还是您假设可以找到正确的?
  • 任何一个。满足我的两个标准(底部两个公式)的任何排列都是可以接受的答案。
  • 您到底为什么需要生成这么多虚假评论数据?你是想在一些毫无戒心的网站上发布真实的虚假评论吗?

标签: javascript html algorithm


【解决方案1】:

通过将所有内容都设为 5 星评价,您可以获得尽可能多的总分。您可以通过将 5 星评论之一设为 4 星评论,将总数减一。你可以继续减一,直到一切都是 4 星评价。同样,通过将 4 星评论变为 3 星评论来减少 1...

因此,有一种方法可以获得从所有 5 星到所有 1 星的所有可能的总分,并且您可以为每个可能的总分获得某种答案。

当然,您不需要逐点计算。您可以通过将总分与所有 5 星、所有 4 星......所有 1 星进行比较来开始搜索,并找到比您的目标更大的最小总分。然后将您已确定的任何星星更改为下一个最小值,以达到您的确切目标。

(当然这看起来有点人为,但您不能创建虚假的评论编号来将产品推向视线,因为这将是虚假广告,迟早您会被抓到)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-23
    相关资源
    最近更新 更多