如何在客户端之间平均分配计算作业
|
我有一个问题。
我有一个输入:\“ / 0-9 / 0-9 / 0-9 / 0-9 \”。在这种情况下,其可能性为10 ^ 4。
我的程序对其进行分析并计算所有排列,然后输出输出。在我们的例子中,输出为:
0001
0002
。
。
。
9999
问题是我有一个服务器应用程序(用C#编写)接收此输入,并假设在连接的客户端之间平均分配计算任务。最后,每个客户都需要打印自己的部分。
限制是服务器发送给客户端的任务格式必须为\“ /#-#/#-#/#-#/#-#/ \”
如果所有客户端获得相同数量的任务,则服务器可以向每个客户端发送一个以上的任务。
再举一个例子:
我有两个连接的客户端。我的输入是/ 0-9 / 0-9 / 0-9 / 0-9 /
因此,我将发送:
clinet1:/ 0-4 / 0-9 / 0-9 / 0-9 /
clinet2:/ 5-9 / 0-9 / 0-9 / 0-9 /
如何在n个客户之间平均分配?
n
没有找到相关结果
已邀请:
1 个回复
薄响
说
,然后说
。所以现在您需要将输入分成500组
当N不能平均划分为10 ^ 4时,这变得有点混乱,但是您可以简单地舍入要发送给每个客户端的作业数,以便客户端有时会在间隔的端点上重叠作业 编辑:例如,如果N = 3,则每个客户的项目= 3333.333。然后将其四舍五入到3000,最后一个做4000
您可以推广该算法以平均拆分项目。如果N在1-10之间,则您将分割第一个间隔。如果N在11-100之间,则您将分割第二个间隔。如果N在101-1000之间,您将在第三个时间间隔分裂