Py学习  »  Python

python:获取所有可能的组合,以便根据约束将x个苹果分配给y个篮子

MIMIGA • 4 年前 • 473 次点击  

假设我们有 x 苹果和 y 篮子,我们要把所有的苹果都分配到篮子里,这样每个篮子最多只能得到 z 苹果。如何编写python代码以获得所有可能的组合。 为数不多的 Y ,我可以循环 Y 如下(x=5,y=3,z=2)。

all_chances = np.zeros((0,3))
for a in range(3):
   for b in range(3):
      for c in range(3):
          if a+b+c == 5:
             all_chances = np.vstack((all_chances, np.array([a,b,c])))

基本上, all_chances

array([[1., 2., 2.],
   [2., 1., 2.],
   [2., 2., 1.]])

我的问题是:如果y是一个大数,比如x=30,y=26,z=2怎么办?我需要循环26次吗?

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/40229
 
473 次点击  
文章 [ 2 ]  |  最新文章 4 年前