cretthie
Messages postés133Date d'inscriptionmercredi 27 juin 2012StatutMembreDernière intervention10 janvier 20121 18 sept. 2008 à 19:43
for n1 = 0 to 10
for n2 = 0 to 10
..............
for nK = 0 to 10
calcul sur le vecteur V(n1,...,nK)
donc ton nK n'est pas egal a 0
Il devrait etre egal a nK, au lieu de 0, non ?
il faut affecter ta valeur dans ton for n2 ou n1ou encore en dehors des boucle selon ce que tu veux.
for n1 = 0 to 10
for n2 = 0 to 10
maValeur = n*K
for nK = maValeur to 10
calcul sur le vecteur V(n1,...,nK)
c'est ptetr ce que tu cherche.
mais c'es je mettrai plus cette question dans le forum algorithme.
Amaury76
Messages postés2Date d'inscriptionjeudi 18 septembre 2008StatutMembreDernière intervention19 septembre 2008 19 sept. 2008 à 15:14
Merci pour ta réponse [auteur/CRETTHIE/919213.aspx cretthie]
J'ai réussi à trouver la solution: utiliser la récursivité : ci-dessous le code pour ceux que cela intéresse (qui me donne le nb de cas et la matrice des vecteurs à tester):
Option Base 1 'pour démarrer les indices à 1
Type R
matrice() As Integer
nb As Integer
End Type
Function Cas(k As Integer, vecteur() As Integer, cumul As Integer, ponderations() As Integer, k_max As Integer) As R
For j = 0 To 10
vecteur(k) = j
If k = 1 Then
cumul = cumul + 1
For y = 1 To k_max
ponderations(y, cumul) = vecteur(y)
Next y
Else
Cas = Cas(k - 1, vecteur(), cumul, ponderations(), k_max)
End If
Next j
Cas.nb = cumul
Cas.matrice = ponderations
End Function