1
5
首先,每项都打一分。这是为了满足您的要求,即所有项目都获得分数。然后得到每个项目总重量的百分比,并奖励它剩余的百分比(四舍五入)。 会有一部分点遗留下来。按项目的小数部分大小对项目集进行排序,然后按从最大小数部分到最小小数部分的顺序一次分配剩余的点。 所以,如果一个项目的权重为12,而所有项目的总权重为115,你首先会给它1分。如果还有4个项目的话,那么在发放完最低分后还有110分。然后你会给这个项目10分,因为它占总重量的百分比是110的9.58%和10.538的9.58%。然后你会根据.538进行分类,如果它靠近顶端,可能会被撞到11。 |
2
3
考虑到两个约束total==100每个项目>0无法解决101个案例,因此,为了保持稳健,您必须获得解决方案。这是业务问题,不是技术问题。 最低得分案例实际上也是一个商业问题。很明显,如果你每项至少发放5分,你的结果的意义与最低1分有很大不同——低分、非零分和低分之间的差距可能会被压缩。因此,您真的应该从系统用户那里获得清晰的信息,而不仅仅是选择一个数字:他们将如何使用这些数据? |
danial · 如何在多个字符串的每个位置找到最频繁的字符 2 年前 |
Manny · 如何比较Perl中的字符串? 2 年前 |
Diret · 获取范围内每个数字的子倍数的算法 2 年前 |
Saif · 排序时python如何决定何时调用比较器? 2 年前 |