python – 生成随机3元素Numpy整数数组,总和为3

我需要用随机整数填充三个元素的numpy数组,使得数组的总和为3(例如[0,1,2]).

据我估算,有10个可能的数组:

111,
012,
021,
102,
120,
201,
210,
300,
030,
003

我的想法是使用randint随机生成1到10之间的整数,然后使用查找表从上面的组合列表中填充数组.

有谁知道更好的方法?

解决方法:

我是这样做的:

>>> import numpy as np
>>> a=np.array([[1,1,1],[0,1,2],[0,2,1],[1,0,2],[1,2,0],[2,0,1],[2,1,0],[3,0,0],[0,3,0],[0,0,3]])
>>> a[np.random.randint(0,10)]
array([1, 2, 0])
>>> a[np.random.randint(0,10)]
array([0, 1, 2])
>>> a[np.random.randint(0,10)]
array([1, 0, 2])
>>> a[np.random.randint(0,10)]
array([3, 0, 0])
上一篇:Nervos 2020:过去、现在和未来


下一篇:CF451E Devu and Flowers(容斥)