View Single Post
Old 12-11-2009, 13:53   #5
Fabio7586
Senior Member
 
Iscritto dal: Dec 2007
Città: Napoli
Messaggi: 392
Quote:
Originariamente inviato da MarcoGG Guarda i messaggi
Devi fare li calcolo di tutte le Combinazioni Semplici senza ripetizione su N elementi ( tutte le squadre del calendario ) a Gruppi di K ( nel tuo caso K=2 ).

Questa mia Function lo fa, a te il piacere di modificarla per il tuo scopo :

Codice:
Public Function CombinazioniSemplici(ByVal arrayElementi() As String, ByVal dimensioneGruppo As Byte) As List(Of String)

        Dim LC As New List(Of String)
        If arrayElementi.Count = 0 Then Return LC
        If dimensioneGruppo = 0 Or dimensioneGruppo > arrayElementi.Count Then Return LC

        Dim aP(dimensioneGruppo - 1) As Integer
        For i As Integer = 0 To aP.Count - 1
            aP(i) = i
        Next

        Dim C As String = ""
        Do
            C = ""
            For i As Integer = 0 To aP.Count - 1
                C = C & arrayElementi(aP(i))
            Next
            LC.Add(C)

            Dim cnt As Integer = 0
            For i As Integer = aP.Count - 1 To 0 Step -1
                If aP(i) = arrayElementi.Count - 1 - cnt Then
                    cnt += 1
                    If cnt = aP.Count Then Exit Do
                Else
                    aP(i) += 1
                    For j = 0 To aP.Count - 1
                        If i < j Then aP(j) = aP(i) + (j - i)
                    Next
                    Exit For
                End If
            Next
        Loop

        Return LC

End Function
Ti ringrazio tanto per l'aiuto che mi dai, però io non l'ho capito tanto nel senso che non so come riadattarlo al mio codice. Io le squadre posso prelevarle da diverse textbox, oppure direttamente da database, poi una volta fatta la combinazione, deve andarla a scrivere in un tabella che ha i campi squadra1, squadra2.
cosa devo sostituire all'interno del codice affinche mi crei le coppie e le scriva nel database?
Quello che ho capito, è che si fanno scorrere i due indici(i,j) all'interno della matrice (solo questo ho capito)
mi aiuteresti ancora?

Ultima modifica di Fabio7586 : 13-11-2009 alle 00:12.
Fabio7586 è offline   Rispondi citando il messaggio o parte di esso