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?