我需要一种算法的帮助,该算法可以有效地将人们分组,并确保以前的配对不会重复。
例如,假设我们有 10 位候选人;
candidates = [0,1,2,3,4,5,6,7,8,9]
并假设我们有一个先前匹配的字典,使得每个键值对 iecandidate:matches代表一个候选者和迄今为止与它们配对的候选者数组;
prev_matches = {0: [6, 5, 1, 2], 1: [4, 9, 0, 7], 2: [9, 8, 6, 0], 3: [5, 4, 8, 9], 4: [1, 3, 9, 6], 5: [3, 0, 7, 8], 6: [0, 7, 2, 4], 7: [8, 6, 5, 1], 8: [7, 2, 3, 5], 9: [2, 1, 4, 3]}
因此,对于Candidate 0,它们首先与 、 、 和 配对,在随后的配对轮中,它们与、、 和Candidate 6配对。字典中的其他键值对也是如此。Candidate 5Candidate 1Candidate …