我正在尝试提出一种算法,将用户“Q”,“W”,“E”和“R”分配到不同的队列位置(列“A”,“B”,“C” ,“D”)在每次迭代任务之后。我试图手动解决这个问题(使用不同的组合)而不能,所以我显然有一个概念问题(或者根据我的约束,没有理想的解决方案)。任何帮助/提示表示赞赏。如果您在代码中有建议,请随意使用任何语言。
谢谢!
我有一些限制:
用户“Q”,“W”和“R”应具有尽可能相同的分布 在所有列中(意味着,例如,用户“Q”不应该在 任何一列比用户“W”的次数要多得多 和“R”)。
A B C D
1
2
3
4
5
6
7
8
9
10
答案 0 :(得分:2)
经过一些反复试验,我认为这有效吗?
A B C D
1 Q W R E
2 R Q E W
3 Q E W R
4 W R Q E
5 Q W E R
6 W E R Q
7 R Q W E
8 W R E Q
9 R E Q W
10 Q W R E (repeats from 1 on)
我在这里首先创建了三行旋转Q,W和R.
QWR
WRQ
RQW
然后将这三行放在彼此之下三次,在D列插入一次,在C列插入一次,在B列插入一次。
QWRE
WRQE
RQWE
QWER
WREQ
RQEW
QEWR
WERQ
REQW
然后最后手动洗牌那九行,直到满足前两个要求。