Heim >Backend-Entwicklung >C++ >Wie generiert man in C# alle möglichen Kombinationen aus einer Liste von Ganzzahlen?

Wie generiert man in C# alle möglichen Kombinationen aus einer Liste von Ganzzahlen?

DDD
DDDOriginal
2025-01-16 17:12:381032Durchsuche

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

Alle Kombinationen in einer Werteliste auflisten

In C# ist es bei einer dynamischen Liste von Ganzzahlen häufig erforderlich, alle möglichen Kombinationen ihrer Elemente zu generieren. Für die Liste {1, 2, 3} müssen Sie beispielsweise die folgende Kombination generieren:

<code>{1, 2, 3}
{1, 2}
{1, 3}
{2, 3}
{1}
{2}
{3}</code>

Verwenden Sie dazu den folgenden Algorithmus:

  1. Zähler initialisieren: Verwenden Sie Zweierpotenzen (die Potenz ist die Anzahl der Elemente in der Liste), um die Anzahl der möglichen Kombinationen zu bestimmen.
  2. Zähler in Binärformat konvertieren: Stellen Sie den Zähler im Binärformat dar und füllen Sie ihn bei Bedarf mit Nullen auf, um der Länge der Eingabeliste zu entsprechen.
  3. Eine Kombination von Elementen extrahieren: Wenn das Bit für jedes Bit in der Binärdarstellung auf „1“ gesetzt ist, wird das Element am entsprechenden Index in der Eingabeliste ausgegeben.
  4. Iterationszähler: Erhöhen Sie den Zähler, bis die maximal mögliche Anzahl an Kombinationen erreicht ist.
  5. Kombinationen drucken: Jede Kombination in einer separaten Zeile ausgeben.

Der bereitgestellte C#-Code demonstriert die Implementierung dieses Algorithmus:

<code class="language-csharp">static void Main(string[] args)
{
    GetCombination(new List<int> { 1, 2, 3 });
}

static void GetCombination(List<int> list)
{
    double count = Math.Pow(2, list.Count);
    for (int i = 1; i < count; i++)
    {
        string binary = Convert.ToString(i, 2).PadLeft(list.Count, '0');
        List<int> combination = new List<int>();
        for (int j = 0; j < binary.Length; j++)
        {
            if (binary[j] == '1')
            {
                combination.Add(list[j]);
            }
        }
        Console.WriteLine(string.Join(", ", combination));
    }
}</code>

Das obige ist der detaillierte Inhalt vonWie generiert man in C# alle möglichen Kombinationen aus einer Liste von Ganzzahlen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn