nell'ordine in cui appaiono in ab
No, l'ordine è casuale.
Precisiamo subito che:
codice:
+----+----+----+ +----+----+----+
| az | bd | ce | | ce | bd | az |
+----+----+----+----+----+ +----+----+----+----+----+
| | | | | | ______ | | | | | |
+----+----+----+----+----+ ______ +----+----+----+----+----+
| df | ef | | | | | ef | | | | df |
+----+----+----+----+----+ +----+----+----+----+----+
E questo è l'algoritmo di posizionamento (l'ho riscritto per permetterti di comprenderlo, così sono sicuro che capirai anche l'ordinamento):
codice:
int _1row[ 3 ];
int _2row[ 5 ];
int _3row[ 5 ];
/* ID delle righe */
int c1 = 0, c2 = 0, c3 = 0;
int choices[ 5 ] = { 1, 2, 3, 4, 5 };
for ( INT c = 0; c < 5; c++ ) {
/* Posiziono casualmente i 5 elementi in una delle 3 righe */
switch ( rand() % 3 ) {
/* Prima riga */
case 0:
/* Se la prima riga ha tutte e 3 le colonne occupate posiziona o nella
seconda o nella terza riga */
if ( c1 != 3 ) {
_1row[ c1 ] = choices[ c ];
c1++;
} else if ( rand() % 2 == 0 ) {
_2row[ c2 ] = choices[ c ];
c2++;
} else {
_3row[ c3 ] = choices[ c ];
c3++;
}
break;
/* Seconda riga */
case 1:
_2row[ c2 ] = choices[ c ];
c2++;
break;
/* Terza riga */
case 2:
_2row[ c2 ] = choices[ c ];
c2++;
break;
}
}
Infine faccio il sorting delle tre righe, così è possibile la condizione secondo la quale le tabelle dell'esempio siano uguali se confrontate.