生成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
更新于 阅读次数