生成n个随机数,其和为固定值
def func(amount, num): | |
list1 = [] | |
for i in range(0, num - 1): | |
a = random.randint(0, amount) # 生成 n-1 个随机节点 | |
list1.append(a) | |
list1.sort() # 节点排序 | |
list1.append(amount) # 设置第 n 个节点为 amount,即总金额 | |
list2 = [] | |
for i in range(len(list1)): | |
if i == 0: | |
b = list1[i] # 第一段长度为第 1 个节点 - 0 | |
else: | |
b = list1[i] - list1[i - 1] # 其余段为第 n 个节点 - 第 n-1 个节点 | |
list2.append(b) | |
return list2 |