Buonasera a tutti, sono 4 giorni che non vengo a capo di questa cosa. supponiamo che io abbia questa matrice

1) 1 2 3 4 5 6
2) 1 2 3 4 5 7
3) 1 2 3 4 5 8
4) 1 2 3 4 6 7
5) 1 2 3 4 6 8
6)1 2 3 4 7 8
7)1 2 3 5 6 7
8)1 2 3 5 6 8
9)1 2 3 5 7 8
10)1 2 3 6 7 8
11)1 2 4 5 6 7
12)1 2 4 5 6 8
13)1 2 4 5 7 8
14)1 2 4 6 7 8
15)1 2 5 6 7 8
16)1 3 4 5 6 7
17)1 3 4 5 6 8
18)1 3 4 5 7 8
19)1 3 4 6 7 8
20)1 3 5 6 7 8
21)1 4 5 6 7 8
22)2 3 4 5 6 7
23)2 3 4 5 6 8
24)2 3 4 5 7 8
25)2 3 4 6 7 8
26)2 3 5 6 7 8
27)2 4 5 6 7 8
28)3 4 5 6 7 8

io vorrei prendere la riga 2 e confrontarla con la 1, se hanno piu di 5 elementi uguali la scarto. Passo quindi a confrontare la 3 con la 1, se di nuovo trovo 5 elementi uguali scarto anche la 3.. e cosi via...scartando praticamente le righe 2-3-4-5-6-7-8. La numero 9 non la scarto perchè ha solo 4 elementi in comune con la 1, quindi proseguo con la riga 10 confrontandola solo con la 1) e la 9) perchè le altre sono "disabilitate".
La 10 ha 5 elementi in comune con la 9, quindi la scarto/disabilito
la 11 ha 5 comuni sia con uno che con 9....scartata
e cosi via.. fino alla fine

La matrice ridotta risulta essere

123456
123478
125678
234578

il codice me lo scriverei da solo, solo che gli algoritmi che implemento non fanno quello che dovrebbero.. qualcuno ha un'idea di come va impostato l'algoritmo?
Conviene fare una routine che confronti 2 righe? e dica quanti elementi in comune hanno le righe... oppure copiare le righe che non scarto in un'altra matrice?