Maison > développement back-end > C++ > Comment générer toutes les combinaisons possibles d'une liste en C# ?

Comment générer toutes les combinaisons possibles d'une liste en C# ?

DDD
Libérer: 2025-01-16 17:39:11
original
364 Les gens l'ont consulté

How to Generate All Possible Combinations of a List in C#?

Générer une liste de toutes les combinaisons possibles

En C#, vous pouvez rencontrer des situations dans lesquelles vous devez traiter une liste d'entiers mais ne connaissez pas le nombre d'éléments avant l'exécution. Pour résoudre cette situation, il est crucial de trouver toutes les combinaisons possibles de listes.

Pour ce faire, vous pouvez utiliser une méthode mathématique :

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

<code class="language-csharp">static void GetCombination(List<int> list)

{

    double count = Math.Pow(2, list.Count);

    for (int i = 1; i < count; i++)

    {

        string str = Convert.ToString(i, 2);

        str = str.PadLeft(list.Count, '0');

        Console.Write("{");

        for (int j = 0; j < str.Length; j++)

        {

            if (str[j] == '1')

            {

                Console.Write(list[j] + ",");

            }

        }

        Console.WriteLine("}");

    }

}</code>

Copier après la connexion

Cette méthode :

  • Utilisez 2^list.Count pour calculer le nombre total de combinaisons.
  • Convertissez chaque index combiné i en sa représentation binaire sous forme de chaîne str.
  • Remplissez la chaîne avec des zéros non significatifs pour qu'elle corresponde à la longueur de la liste.
  • Parcourez les caractères de str. Si le caractère est « 1 », l'élément correspondant dans la liste est affiché.
  • Répétez cette opération pour chaque indice i, générant ainsi toutes les combinaisons possibles.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal