【发布时间】:2016-09-10 17:15:12
【问题描述】:
在 5 星评分系统中,我有已知的评分数 N(投票。)
我还有所有这些 N 评级的最终(加权)平均值,假设它是 R(浮点到小数点后两位)。
我想知道生成所有可能组合(加权平均总数)并仅打印出导致 R 的最佳方法(算法)。打印“所有”可能的组合不是我想要的,因为对于一个大的 N 和小的 R 来说,它会运行数百亿。我比 Python 新手差了一步,但它将是首选的语言,而这个练习就是我对该语言的介绍。解决这个问题的最佳方法是什么?方法是我的问题,但非常感谢任何代码提示。
示例:
N= 20 位客户评价了一个产品
R = 3.85 是平均评分
输出: [14, 0, 0, 1, 5] 是 146 种可能的组合之一。 “14个五星,0个四星,0个三星,1个二星,5个一星”
还有组合: [487, 0, 1, 0, 12] 对于 N=500 和 R=4.90 等,是 1154 种可能的组合。
【问题讨论】:
-
这个问题与 Python 无关。你可能需要一个算法。
-
看起来像家庭作业,当你用 Python 标记它时,可能会向我们展示你最好的尝试,有人可能会帮助你找到你卡在哪里。
-
为什么不能平均重新分配平均值?例如,仅考虑 10 个 5 星、4 个 4 星等的平均值和总数,你怎么知道?
-
@cricket_007 这不是重点。他想要每个组合都能得到给定的平均值。
-
N=20,N*R=77的积分解有146个,你真的需要全部找出来吗?