如何迭代所有这些可能性?

碱性的

假设我们有一个python列表

list = [[1,2,3],[4,5,6],[7,8,9]]

我将总和定义如下:

sum:是每个子列表中单个条目(不同索引)的总和。

这听起来很复杂,所以我举一个例子,

对于上面的列表,1 + 5 + 9是总和之一,因为1来自第一子列表,5来自第二子列表,9来自第三子列表,并且它们在各自的子列表中都具有不同的位置。

所以我不能,1 + 4 + 7因为1,4和7是其子列表中的第一项。

我不能,1 + 5 + 8因为5和8都是列表中的第二个条目,依此类推

例如,我想找到每个子列表中各个条目的总和最高!

我如何遍历所有这些可能的总和,然后从所有这些总和中获得最高收益。

对于上面的列表,我们有3 ^ 3 = 27个不同的和。

有没有一种有效的方法来用python做到这一点?

尔卡斯蒂洛夫

这是可以使用匈牙利算法解决的经典问题sklearn中有一个实现:

from sklearn.utils.linear_assignment_ import linear_assignment
import numpy as np

M = [[1,2,3],[4,5,6],[7,8,9]]

M = np.array(M)  #convert to numpy array

result = linear_assignment(M)

answer = sum(M[cell[0]][cell[1]] for cell in result)

迭代所有可能的和是一个坏主意(O(N!))。上面的算法必须在O(N ^ 3)中运行。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何从文本中删除所有这些符号?

我如何消除所有这些if-else

如何打印所有这些块?

如何显示所有这些字段?

如何摆脱所有这些重复项?

可访问性和所有这些JavaScript框架

如何解析一行可能被引用的搜索词,以及如何使用这些词匹配包含所有这些词的输入行?

如何一次性从用户处删除所有内容,如表、包、索引、序列、LOB 所有这些

我如何将所有这些“管道”到 xclip 保留换行符

如何缩短所有这些复选框的代码

如何使用多个ColumnDataSource并一次更新所有这些?

开始学习OpenGL。在现代Linux上,所有这些概念如何相关?

如何删除所有这些kubernetes k8s_ *容器

AWS VPC:试图了解我是如何获得所有这些网络 ACL 规则的

如何在Java中编写“所有这些数字都不同”的条件?

如何避免使用枚举式属性重复所有这些操作?

Libcurl如何不显示所有这些信息

所有这些“从YouTube保存视频”服务如何工作?

如何不重写整个函数中的所有这些值?

如何获得此JavaScript以将其应用于所有这些按钮?

如何在单个命令中允许所有这些16384(IP范围从&到)IP?

如何将所有这些相似的观点浓缩为一个?

AS3,如何进行循环而不是使用所有这些IF语句

http://ifconfig.me如何从客户端获取所有这些信息?

您如何解决所有这些py2exe问题?

如何在Photoshop中消除所有这些孔?

Python tkinter 如何使用循环创建所有这些 Checkbuttons?

是否需要所有这些版本的Visual Studio?

所有这些字段是什么意思?