【发布时间】:2016-12-12 15:31:45
【问题描述】:
为了在我的研究中完成一个项目,我必须解决一个关于 python 的问题,我需要一些帮助。
确实,我想浏览一个问题的所有可能性,并且我有想法,但这对我来说不是很清楚。
问题来了:
- 233 200 134 167
- 234 187 172 196
- 237 220 133 163
- 241 159 193 165
我们必须找到如何为每个进出站放置每辆卡车。 一列代表卡车的装载量和数字,产品数量。
例如,如果我们将卡车 A 放在第一个入站 (233),卡车 B 放在第二个入站 (187),卡车 C 放在第三个入站 (133),卡车 D 放在第四个入站 ( 165) 我们有 233+187+133+165=718
我们的目标是最小化这个总和。例如,如果我们只更改卡车 A 和卡车 B,我们的总和为 234+200+133+165=732,这并不比以前好。
那么,我们如何才能获得卡车放置的所有可能性的总和? 有 24 种可能性,我们已经将它们写在 excel 中,并且最好的可能性是卡车 A (234) 的位置,卡车 B (159) 的位置 4,卡车 C (134) 的位置 1 和卡车 D (163) 的位置 3,总和为690 !
我将使用列表,并且我知道我们如何获得列表中的数字,如何创建列表等。用列表的数量求和,但是我们如何获得我们可以进行的所有计算以excel为例,比如我之前写的两次。
此致,
【问题讨论】:
-
itertools.permutations(range(4))将生成数字 0..3 的 24 种可能排列(您可以将range(1,5)用于文本中的数字 1..4,但这远不便于索引列表)。
标签: list sum brute-force