16/08/10 12:15
djleo
Ciao, a tutti mi servirebbe un aiuto per un algoritmo come da titolo. Allora mi spiego:
L'algoritmo che ho intenzione di scrivere dovrebbe fare questo:
1) Caricare in un array un elenco di nomi letto da file(giocatori partecipanti ad un torneo);
2) Creare una matrice con gli accoppiamenti tra due giocatori a caso senza ripetizione;
il punto uno l'ho fatto mi manca il punto 2 non riesco a fare gli accoppiamenti, cioè nn riesco afarli senza ripetizione es:
a vs b ok
b vs c no
d vs e ok
come posso fare?
aaa
16/08/10 12:34
Poggi Marco
Postato originariamente da djleo:
Ciao, a tutti mi servirebbe un aiuto per un algoritmo come da titolo. Allora mi spiego:
L'algoritmo che ho intenzione di scrivere dovrebbe fare questo:
1) Caricare in un array un elenco di nomi letto da file(giocatori partecipanti ad un torneo);
2) Creare una matrice con gli accoppiamenti tra due giocatori a caso senza ripetizione;
il punto uno l'ho fatto mi manca il punto 2 non riesco a fare gli accoppiamenti, cioè nn riesco afarli senza ripetizione es:
a vs b ok
b vs c no
d vs e ok
come posso fare?
La soluzione è molto semplice:
1) carica un vettore contenente tutti i giocatori (ogniuno una sola volta)
2) esegui un ciclo che va da 1 a n°giocatori-1 in questo modo:
- genera un numero casuale (n) compreso tra l' indice del ciclo e il numero di giocatori
- n indicherà il giocatore estratto (seleziona il giocatore con la posizione n nel
vettore.
- Scambia i giocatori nel vettore che hanno posizione n e l' indice del ciclo.
(In questo modo, i giocatori già estratti non vengono ripescati)
Ultima modifica effettuata da Poggi Marco 16/08/10 12:35
aaa
16/08/10 16:01
Alex
io avrei invece creato un'array di valori booleani uguale per dimensioni a quella dei giocatori che mi terrà traccia se il giocatore è già stato estratto. successivamente:
1) genero un numero casuale
2) controllo sull'array di booleani in corrispondenza del numero casuale che valore c'è:
3)se c'è false allora lo metto a true e restituisco il numero estratto
se c'è già true vuol dire che è gia stato estratto e ritorno al punto 1)...
aaa