java 权重 分配_java算法,如何按照权重来分配任务?

随着科学技术与经济水平的不断发展与提升,越来越多的人开始投身到java的学习中了,以谋求更高的薪资与更好的生活水平。今天就来为大家介绍一些java基础知识,在java算法中,如何按照权重来分配任务?一起来看看吧。

首先,假设有一些任务执行者执行一定数量的任务,并且任务的分配需要按一定的权重比来进行。任务的分配是随机的,分配完毕后需要为每条任务打上执行者的标签(也就是被谁执行)。分配算法并不难,但是用java写起来还是很有趣的。

先简述一下算法设计:

1.总的任务数能被权重和整除,那么每个人分配的数量就是:总任务数/权重和*权重;

2.总的任务数不能被权重和整除,则先按整除的数按1的方式分,然后余数再优先分给权重较小的执行者。代码展示如下://总的任务

List  dataList = pm1.getDataList();

int total = dataList.size();

//待分配人员

List  autoList = pmAuto.getDataList();

//总权重

int totalWight = 0;

for (int i = 0; i 

{

ExecutorDTO dto = autoList.get(i);

int weight = dto.getWeight();

totalWight += weight;

}

//获得能整除的最大数

Integer maxInt = getMaxInt(totalWight, total);

int 

你可能感兴趣的:(java,权重,分配)