假设我们有
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次吗?