PDA

Visualizza la versione completa : URGENTISSIMO: come trovare tutte le combinazioni dei dati di un vettore.


kumm
27-09-2002, 13:51
Ciao a tutti ho questo grosso problema ke non riesco a risolvere:

Ho un vettore di 22 numeri e devo trovare tutte le combinazioni di 5 numeri possibili con quei 22 numeri....

mi spiego meglio, e faccio un esempio con un vettore di 5 numeri per trovare tutte le combinazioni di 3 numeri.
15 - 8 - 40 - 20 - 32

tutte le combinazioni UNIVOKE di 3 numeri sono le seguenti

1. 15 - 8 - 40
2. 15 - 8 - 20
3. 15 - 8 - 32
4. 15 - 40 - 20 (non metto 15-40-8 xkÚ Ŕ lo stesso di 15-8-40)
5. 15 - 40 - 32
6. 15 - 20 - 32
7. 8 - 40 - 20
8. 8 - 40 - 32
9. 8 - 20 - 32
10. 40 - 20 - 32

X UNIVOKE intendo ke la terna 8-40-32 Ŕ uguale a 40-8-32 o 32-8-40

Come posso ottenere la lista per un vettore di 22 numeri a gruppi di 5 numeri?????

grazie anticipatamente.....

MisterMoro
27-09-2002, 14:46
Devi usare dei cicli annidati e tanti indici quanti sono gli elementi di ogni campione (nel tuo caso 5). Se ti interessano le combinazioni e non le disposizioni devi fare cosý:
For K=0 To N-1
For J=K+1 To N-1
For I=J+1 To N-1
For Y=I+1 To N-1
For W=Y+1 To N-1
' qui inserisci le operazioni per prendere il campione
' usando gli indici
' esempio: CAMPIONE = Vettore(K)+Vettore(J)+..+Vettore(W)
Next W
Next Y
Next I
Next J
Next K

Io te l'ho scritto in VB ... poi lo adatti tu al linguaggio che ti interessa. N Ŕ la numerositÓ della popolazione (ovvero del vettore). Ricorda che sn partito da 0 e arrivato a N-1 perchŔ in VB l'indice dei vettori inizia da zero. Se nel tuo linguaggio inizia da 1 allora metti da 1 a N.

Spero di essere stato chiaro e utile.


:ciauz:

kumm
27-09-2002, 14:59
Grazie mille MisterMoro!!

Va benissimo in VB, ma pensavo fosse meglio una procedura ricorsiva standard indipendente dal numero di cifre nel vettore e da quelle del campione.... ke dici?

Ti ringrazio tanto.

Loading