1
AX5N 2021-03-07 23:09:07 +08:00
直接乘以 3 不就得了,你不是只要大概范围吗,误差范围就不管了呗
|
2
learningman 2021-03-07 23:18:12 +08:00 via Android 1
别算了,上协程,反正不浪费 CPU 时间
|
3
makdon 2021-03-08 00:29:57 +08:00
抽象来说,就是你有 n 个数值,将其分成 m 组,设分组后每组和的最大值为 x,求 x 的最小值?
|
4
woctordho 2021-03-08 03:44:01 +08:00 via Android
搞个负载均衡吧,比如用 Queue,然后估算时间只要除以 3 就行了
|
5
xuegy 2021-03-08 07:36:25 +08:00
先排三个队列出来,从最大的可能性开始选,目标是总和达到平均值。比如第一个线程选 9+6,第二个选 8+7,第三个选剩下的,正好同时完成。
|
6
siyemiaokube 2021-03-08 07:56:50 +08:00 via iPhone
精准的完成时间是多机调度问题,精确解是 npc 问题,所以你还是随便估一下吧
|
7
dingwen07 2021-03-08 08:41:33 +08:00 via iPhone
如果是单核 CPU 那就简单了
|
8
shuax 2021-03-08 09:30:20 +08:00
from multiprocessing import Manager
算的过程中上报进度 |
9
ch2 2021-03-08 12:38:49 +08:00
已用时间 t_current,已完成任务的百分比 percent,预计完成时间 t_current/percent*(1-percent)
percent 由 n 个子进程汇报给父进程,父进程计算 |
10
ipwx 2021-03-08 13:15:51 +08:00
|
11
space2020 2021-03-09 00:13:47 +08:00 1
这是个 NP-完全问题,如果想要求精确解,目前只能暴力,或者用贪心算法求一个近似解。
|