最近有一个需求需要生成一个总和固定,指定长度的随机数序列,特意记录下代码,与大家分享一下。
既可以生成随机数小数序列,也可以生成随机数整数序列。
import numpy as np
def allocation_amount(num_people, amount):
# 生成小数随机数
a = [np.random.uniform(0, amount) for i in range(num_people-1)]
# 生成整数随机数
# a = [np.random.randint(0, amount) for i in range(num_people-1)]
a.append(0)
a.append(amount)
a.sort()
print(a)
b = [a[i+1]-a[i] for i in range(num_people)] # 列表推导式,计算列表中每两个数之间的间隔
print(b)
b = np.array(b)
return b
# 随机生成一个长度为5, 总和为2022的列表
bonus = allocation_amount(5, 2022)
print(bonus)
print(np.sum(bonus))
------------- EOF ---------------
更多推荐
python numpy 生成 总和为固定值指定个数的随机数
发布评论