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