Devo assegnare in modo imparziale 2 esperti di x
esperti ( x
è piuttosto piccolo - meno di 50) per ogni n
di domande, in modo che:
- ogni esperto ha lo stesso numero di applicazioni (+ -1);
- ogni coppia di esperti (2-combinazione di
x
) ha lo stesso numero di applicazioni (+ -1);
È semplice generare tutte le 2 combinazioni:
for (i=0; i<n; i++) {
for (j=i+1; j<n; j++) {
combinations.append(tuple(i,j));
}
}
Ma per assegnare gli esperti in modo equo ho bisogno di assegnare una combinazione a un'applicazione per correggere l'ordine, ad esempio:
experts: 0 1 2 3 4
fair combinations:
counts
01234
01 11000
23 11110
04 21111
12 22211
34 22222
02 32322
13 33332
14 34333
03 44343
24 44444
Non riesco a trovare un buon algoritmo per questo (il migliore che ho trovato è piuttosto complicato e con O(x4)
complessità). Potresti aiutarmi?