Python:如何在约束下找出所有可行x的值

时间:2015-05-15 04:53:59

标签: python

我现在正在使用Python编写代码。

我想知道如何在约束条件下找出所有可行x的值。

x = [x_1, x_2, x_3,…, x_10]

约束:

x_i = 0, 1, 2, 3 or 4, where i= 1, 2, ….10 
x_1 + x_2 + x_3 +...+ x_10 <= 15

如何使用python找出所有可行解x(x域),如[0,0,0,0,0,0,0,0,0,0][1,1,1,1,1,1,1,1,1,1]等?应该是什么代码?

任何提示或帮助都将受到高度赞赏!

此致

埃迪

1 个答案:

答案 0 :(得分:1)

如果你想使用天真的方法迭代所有可能性,那么你可以使用itertools.product。它可以为您提供所有可能的解决方案:

>>> possibles = itertools.product(range(5), repeat=10)

现在,您可以使用简单的理解来过滤总和大于15的元组:

>>> solutions = [x for x in possibles if sum(x) <= 15]

或者在一行中:

>>> solutions = [x for x in itertools.product(range(5), repeat=10) if sum(x) <= 15]