设计一个随机算法,将一个整数M分成N个整数 要求每个都在区间【minV, maxV】之间

设计一个随机算法,将一个整数M分成N份 要求每份在区间【minV, maxV】之间

输入:M, N, minV, maxV

输出: N个随机整数

举个栗子: 

    比如:N = 10 M = 3 minV = 2 maxV = 4

    那么输出是 [2, 4, 4] [3, 3, 4] [4, 2, 4]......等每次运行的输出结果不一样,满足随机性

import random
def randomSplit(M, N, minV, maxV):
    res = []
    while N > 0:
        l = max(minV, M - (N-1)*maxV)
        r = min(maxV, M - (N-1)*minV)
        num = random.randint(l, r)
        N -= 1
        M -= num
        res.append(num)
    print(res)

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章