有一个作业可以分解成x大小相等的较小的任务.您有一个大小为y <= x的团队,每个成员在任何任务上的工作速度都是一样的。这个挑战的目标是尽可能平均地分配工作,以便您的团队中的每个成员至少有一个任务要执行。尽可能平均地意味着,给定任何成员a,它必须执行的任务最多可能比任何其他成员b多一个。一项任务不能由两名成员同时进一步划分或同时进行。
您的程序/函数将以两个正整数x和y作为输入。y保证小于或等于x。您可以自由决定您的程序将接受这些输入的顺序。您可以从任何输入源获取所需的输入。
您的程序/函数将输出长度为y的正整数列表,表示每个成员必须执行的任务数。名单可以按任何顺序排列。例如,下列产出是相同的:
2 1 2 1
1 1 2 2
2 2 1 1输出可以是对任何输出接收器的期望。
每一行对表示输入和一个可能的输出。这些示例输入首先指定了x。
1 1
1
4 1
4
4 2
2 2
4 3
2 1 1
4 4
1 1 1 1
10 3
3 4 3
10 7
1 2 2 2 1 1 1这是代码高尔夫,最短的代码获胜。适用标准漏洞。
发布于 2018-08-15 21:34:15
发布于 2018-08-15 21:08:43
接受输入作为(y)(x)。
y=>g=x=>y?[k=x/y--|0,...g(x-k)]:[] Remaining tasks | # of tasks for next worker | Workers
---------------------+----------------------------+-------------------------------------
O O O O O O O O O O | 10 / 3 = 3.333... -> 3 | [ O O O ] [ pending ] [ pending ]
O O O O O O O - - - | 7 / 2 = 3.5 -> 3 | [ O O O ] [ O O O ] [ pending ]
O O O O - - - - - - | 4 / 1 = 4 -> 4 | [ O O O ] [ O O O ] [ O O O O ]https://codegolf.stackexchange.com/questions/170676
复制相似问题