社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

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

MIMIGA • 5 年前 • 636 次点击  

假设我们有 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
 
636 次点击  
文章 [ 2 ]  |  最新文章 5 年前