我现在正在使用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]
等?应该是什么代码?
任何提示或帮助都将受到高度赞赏!
此致
埃迪
答案 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]