J'écris un système Digital Fountain en C#. Une partie de ce système me crée des ensembles d'entiers, j'ai besoin de trouver les combinaisons d'ensembles qui créent peuvent me laisser avec un ensemble d'un seul élément. Quel est le moyen le plus rapide de le faire?Recherche d'ensembles chevauchants
Set A: 1,2,3,4,5,6
Set B: 1,2,3,4,6
Set C: 1,2,3
Set D: 5,6
Solutions:
A - B => 5
A - (C + D) => 4
Je ne ai pas besoin de trouver toutes les combinaisons, juste assez pour me trouver autant de numéros uniques que possible. Cela peut être possible d'exploiter pour créer un algorithme plus efficace. Un point important que j'ai oublié de mentionner: Je ne sais pas, au préalable, combien il y a d'ensembles, à la place je les ajoute un par un, et je dois déterminer chaque fois si j'ai trouvé tous les nombres dont j'ai besoin. L'algorithme doit donc être quelque chose qui peut être exécuté par étapes à mesure que de nouveaux ensembles sont ajoutés.
Nb. Solutions en C# obtenir des marques bonus;)
dans la pratique, comment de nombreux ensembles/entiers avez-vous? –
Les ensembles sont-ils toujours triés? –
@Loic: Probablement beaucoup, c'est très variable cependant. – Martin