ca m'a bien aidé pour boucler le code suivant qui determine les dispositions possible de 16 personnes sur 6 postes numerotés
en sachant
que le premier poste recevra 3 personnes ,.
le second ; 3 personnes .
le troisieme : 2 personnes
le quatrieme: 2 personnes
le cinquieme : 2 personnes
et enfin le 6 ieme qui recevra 4 personnes
grace a ton indication sur le type de variable j'ai pu ecrire le bout de code suivant qui tourne bien et donne un apercu du calcul et du resultat.:
Sub dispositions()
Dim k As Double
t = Array(2, 3, 1)
u = Array(3, 2, 4)
s = p * 3 + q * 2 + r * 4
pr = 1
j = 0
Do
k = u(j)
x = x + u(j) * t(j)
Do
pr = pr * combinaison(s - z, k)
visu = visu & "." & "C(" & s - z & "," & k & ")"
z = z + k
Loop Until z = x
j = j + 1
Loop Until 3 - j = 0
MsgBox Mid(visu, 2, Len(visu))
MsgBox pr
End Sub
associé à
Function combinaison(x As Double, y As Double) As Long
combinaison = facto(x) / (facto(y) * facto(x - y))
End Function
Function facto(x As Double) As Double
If x = 0 Then
facto = 1
Else
i = 1
n = 1
Do
n = n * i
i = i + 1
Loop Until i = x + 1
facto = n
End If
End Function
ardu !! mais ca donne le resultat attendu