def diaodu(time,m): """将各个任务分配到m台机器上,任务花费时间列表已汇总至time中,返回分配后的最小时间""" tmp=[0 for _ in range(m)] #初始化每个机器上花费的时间为0 if len(time)<=m: #如果任务数小于等于机器数,就每个任务分配一个机器,返回其耗费最大时间的机器即为最大时间 return max(time) else: #任务数大于机器数 #先将最大耗时任务依次分配给机器 time.sort(reverse=True) print(time) tmp[:m]=time[:m] #先分配前m个任务,后m个任务为time[m:] for t in time[m:]:#对剩下的每个任务耗时t min_index=tmp.index(min(tmp)) #找到tmp时长最小的索引,将t加入此机器 tmp[min_index]+=t return max(tmp) #返回耗时最长的机器的时间 time=[30,26,10,35] m=3 print("总耗时:",diaodu(time,m))