现有:
用户A(角色1)
用户B(角色1)
用户C(角色1)
用户D(角色1)
用户C(角色2)
用户D(角色2)
需求:
需设计用户的轮询算法,假设源源不断的物件要派发给用户ABCD, 这些物件分为种类A物件和种类B物件,各类物件出现机率不确定,
其中,种类物件发给角色1的用户,种类B的物件发给角色2的用户,现要将这1000个物件派发给ABCD这4个用户,在派发量达到一
定数量后,物件派发情况需满足以下条件(如下分配样例):
1.每个用户收到的物件总量一致
2.每个角色下对应的用户收到的物件平均
分配样例如下:
用户A(角色1) :200
用户B(角色1): 200
用户C(角色1):100
用户D(角色1):100
用户C(角色2):100
用户D(角色2):100
。
那你要先将物件排序,然后按次序分给4个用户
要么你维持2个索引,一个代表A物件下一个应该派发给谁,一个代表B物件下一次应该派发给谁,每派发一次就++,溢出了就归零
public class Test1 {
private static int index = 0;
private static String[] players = {"A", "B", "C", "D"};
public static void main(String[] args) {
for (int i = 0; i < 10; i++) {
System.out.println(get());
}
}
public static String get() {
String player = players[index];
index++;
if (index >= players.length) {
index = 0;
}
return player;
}
}
写个简单队列,每次调用get方法,取出要发送的人