我正在寻找一个高效的Python函数,它可以在k
个容器中随机分配一个整数.
例如,allocate(4, 3)
可以产生[4, 0, 0]
、[0, 2, 2]
、[1, 2, 1]
等.
它应该随机分配给每个物品,将n
个物品中的每一个随机分配给k
个箱子中的每一个.
我正在寻找一个高效的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相同.