首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >分工合作

分工合作
EN

Code Golf用户
提问于 2018-08-15 20:48:50
回答 16查看 1.9K关注 0票数 18

有一个作业可以分解成x大小相等的较小的任务.您有一个大小为y <= x的团队,每个成员在任何任务上的工作速度都是一样的。这个挑战的目标是尽可能平均地分配工作,以便您的团队中的每个成员至少有一个任务要执行。尽可能平均地意味着,给定任何成员a,它必须执行的任务最多可能比任何其他成员b多一个。一项任务不能由两名成员同时进一步划分或同时进行。

输入

您的程序/函数将以两个正整数xy作为输入。y保证小于或等于x。您可以自由决定您的程序将接受这些输入的顺序。您可以从任何输入源获取所需的输入。

输出

您的程序/函数将输出长度为y的正整数列表,表示每个成员必须执行的任务数。名单可以按任何顺序排列。例如,下列产出是相同的:

代码语言:javascript
复制
2 1 2 1
1 1 2 2
2 2 1 1

输出可以是对任何输出接收器的期望。

示例

每一行对表示输入和一个可能的输出。这些示例输入首先指定了x

代码语言:javascript
复制
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

评分

这是代码高尔夫,最短的代码获胜。适用标准漏洞。

EN

回答 16

Code Golf用户

发布于 2018-08-15 21:34:15

R,26字节

代码语言:javascript
复制
function(x,y)table(1:x%%y)

在网上试试!

计算1,2,...,y[1...x]模数y中的出现数。12个字节由@mnel提供,而不是由@digEmAll增加6个字节。

票数 10
EN

Code Golf用户

发布于 2018-08-15 21:08:43

JavaScript (ES6),34字节

接受输入作为(y)(x)

代码语言:javascript
复制
y=>g=x=>y?[k=x/y--|0,...g(x-k)]:[]

在网上试试!

示例x= 10,y= 3

代码语言:javascript
复制
 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 ]
票数 6
EN

Code Golf用户

发布于 2018-08-15 22:50:03

哈斯克尔,25字节

代码语言:javascript
复制
x#y=map(`div`y)[x..x+y-1]

在网上试试!

票数 6
EN
页面原文内容由Code Golf提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://codegolf.stackexchange.com/questions/170676

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档