早教吧 育儿知识 作业答案 考试题库 百科 知识分享

求另一个平均分配的算法我现在有一组数例如:6.1,7.1,6.3,5.4,8.1,6.7...等等都是小数,每一组数据之和要尽量的平均,而且每组数据各个数相加不能超过一个给定的数例如:上例数据分成两组{6.

题目详情
求另一个平均分配的算法
我现在有一组数 例如:6.1,7.1,6.3,5.4,8.1,6.7...等等都是小数 ,每一组数据之和要尽量的平均,而且每组数据各个数相加不能超过一个给定的数 例如 :上例数据分成两组 {6.1 7.1 6.3},{5.4 8.1 6.7} ,第一组数据个数相加不能超过20,第二组数据个数相加不超过20 ,都是不超过20,求算法,,
▼优质解答
答案和解析
提供个思路:
先将这些数字排序(如从小到大),假设排序好的数组为a[N](a0,a1,a2,a3,a4,a5,..,aN-1),并求这些数字的和(sum),那么这些数可以分成M组,M大约等于(sum / 20)+1或者(sum/20).那么,每组数字个数为N/M.
从a[N]数组取两头(首尾)同时取数字,取 N/M 个.就完成了第一组的数字.
依此规则,完成剩下的数组取值.
但是,记住要重新检验一下,各组的和是否超过了 20 .如果超过了,就需要做微调.
看了求另一个平均分配的算法我现在有...的网友还看了以下: