python - 查找给定总和的最接近组合而无需替换
问题描述
我一直在涉足编程,最初是在 VBA 中制作一个简单的宏,以在给定输入列表时找到某个组合,该组合总和为给定数字。我想象了一些任务和完成这些任务的分钟数,并输入了一些人来将他们之间的分钟数大致相等。举一个具体的例子,如果我有八个任务和三个人,我可能有以下变量:
M = [44,39,29,77,102,35,40,59]
N = 3
Avg = sum(M)/N
我希望程序能够为每个人找到最接近平均值的组合集。例如在这个例子中,我想要一个类似的输出:
A = [102, 40], B = [44,39,59], C = [29,77,35]
如果有人至少能在这个项目上引导我朝着正确的方向前进,我将不胜感激。虽然这开始于 Excel 工作表的宏之外,但如果我用更合适的语言(如 Python)了解更多关于优化算法的知识,我不介意。
解决方案
让每个人的工作尽可能接近均值相当于最大最小公平分配问题
这本质上是一个优化问题——谷歌研究在这里做了一些工作
https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/45386.pdf
一位 CS 教授为此编写了一个 Python 模块https://github.com/anirudhSK/cell-codel/blob/master/schism/utils/max-min-fairness.py
推荐阅读
- typescript - 如何为具有特定类型的对象切片声明类型?
- python - ForkingPickler(file, protocol).dump(obj) TypeError: cannot pickle '_tkinter.tkapp' object
- java - 断言放心数组中的每个标志等于 True/False
- python - 使用 setattr() 时出现 AttributeError
- excel - 如何制作一个循环将每个单元格划分 3 次?
- javascript - 未捕获的错误:提供的 DOM 元素在 plotly JS 中为 null 或未定义
- python - 当我们使用python从云存储桶下载文件时如何显示进度条
- android - Hilt Fragments 必须附加到 @AndroidEntryPoint Activity。发现:类
- xml - XML 到 XML 映射 XSLT 转换
- matlab - 构造由不同幂的基矩阵组成的块矩阵