Quote:
Originariamente inviato da MarcoGG
Ok. Posto anche la mia versione VBA della CombinazioniConRipetizione, sotto forma di Function, valida per ogni utilizzo. Il tipo restituito è una Collection, che è abbastanza "simile" ( parola grossa ) alla List() di VB.NET... :
Codice:
Public Function CombinazioniConRipetizione(arrayElementi() As Variant, classe As Byte) As Collection
Dim LC As New Collection
If UBound(arrayElementi) = 0 Then
Set CombinazioniConRipetizione = LC
End If
If classe = 0 Then
Set CombinazioniConRipetizione = LC
End If
Dim aP() As Integer
ReDim aP(classe - 1)
Dim i As Integer
Dim j As Integer
Dim C As String
Dim cnt As Integer
Do
C = ""
For i = 0 To UBound(aP)
C = C & arrayElementi(aP(i))
Next i
LC.Add (C)
cnt = 0
For i = UBound(aP) To 0 Step -1
If aP(i) = UBound(arrayElementi) Then
cnt = cnt + 1
If cnt = UBound(aP) + 1 Then Exit Do
Else
aP(i) = aP(i) + 1
For j = 0 To UBound(aP)
If i < j Then aP(j) = aP(i)
Next
Exit For
End If
Next i
Loop
Set CombinazioniConRipetizione = LC
End Function
|
Ottimo
Ma se volessimo parlare di Combinazioni
SENZA Ripetizione ?
Avete una Function o una Sub già pronta?
Grazie 1000!