我有以下矩阵:通过在python重排列的元件最小化在矩阵列的总和
([2, 5, 5, 10]
[7, 1, 4, 1]
[1, 3, 3, 9])
如果列相加的结果为:
[10, 9, 12, 20]
我的目标是确定最佳可以对不同行中的元素进行排序,以便将列总和中的最大元素最小化。
例如,一种可能性是:
([2, 5, 5, 10]
[7, 1, 4, 1]
[1, 9, 3, 3])
如果列相加的结果为:
[10, 15, 12, 14]
这是比第一个较好的解决。
最简单的方法是检查所有可能的排列,但是随着矩阵的增长,这种方法在Python中变得非常慢。
任何想法以更快的方式做到这一点?
这并不总是给出最佳结果。你能想出一个更好的算法吗? – Suparshva
我很想看到这种情况下失败,我无法找到一个。 – gbtimmon
答案中的例子。使用qwerty提供的算法可以产生更好的结果。在你的算法中,我们收到了'[12,15,12,12]',但通过qwerty的算法,我们收到了'[13,12,12,14]'作为最后的列和。 – Suparshva