我正在寻找一个高效的Python函数,它可以在k个容器中随机分配一个整数.

例如,allocate(4, 3)可以产生[4, 0, 0][0, 2, 2][1, 2, 1]等.

它应该随机分配给每个物品,将n个物品中的每一个随机分配给k个箱子中的每一个.

推荐答案

根据numpy的新范例改编Michael Szczesny的comment篇:

def allocate(n, k):
    return np.random.default_rng().multinomial(n, [1 / k] * k)

This notebook验证它返回的分布是否与my brute-force approach相同.

Python相关问答推荐

Matplotlib轮廓线值似乎不对劲

按照行主要蛇扫描顺序对点列表进行排序

覆盖Django rest响应,仅返回PK

用gekko解决的ADE方程系统突然不再工作,错误消息异常:@错误:模型文件未找到.& &

Python中MongoDB的BSON时间戳

剧作家Python没有得到回应

抓取rotowire MLB球员新闻并使用Python形成表格

' osmnx.shortest_track '返回有效源 node 和目标 node 的'无'

Python中绕y轴曲线的旋转

如果值发生变化,则列上的极性累积和

在vscode上使用Python虚拟环境时((env))

NumPy中条件嵌套for循环的向量化

删除marplotlib条形图上的底边

如何在Python中使用另一个数据框更改列值(列表)

如何使regex代码只适用于空的目标单元格

幂集,其中每个元素可以是正或负""""

Maya Python脚本将纹理应用于所有对象,而不是选定对象

如何在Great Table中处理inf和nans

提取数组每行的非零元素

Django在一个不是ForeignKey的字段上加入'