設計一個隨機算法,將一個整數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)

 

 

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