设计一个随机算法,将一个整数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)