Bonjour, j'ai trouvé une fonction pour le problème de la "somme de sous-ensembles" ou "subset sum" qui fonctionne bien.
Je ne comprend pas très bien ce qu'est le with_v dans le code. J'aimerais le convertir pour du VBA sur excel.
Si vous avez une idée? Merci d'avance!

Voici le code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
def subsetsum(array,num):
 
    if num == 0 or num < 1:
        return None
    elif len(array) == 0:
        return None
    else:
        if array[0] == num:
            return [array[0]]
        else:
            with_v = subsetsum(array[1:],(num - array[0])) 
            if with_v:
                return [array[0]] + with_v
            else:
                return subsetsum(array[1:],num)
 
 
 
print(subsetsum([5,1,3,25,33,55,88,77,33,4,22],10))
le résultat ici donne : [5,1,4]