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

Wie generiert man in C# alle möglichen Kombinationen aus einer laufzeitgroßen Liste?

Patricia Arquette
Freigeben: 2025-01-16 17:17:11
Original
132 Leute haben es durchsucht

How to Generate All Possible Combinations from a Runtime-Sized List in C#?

Generieren Sie alle möglichen Kombinationen aus einer laufzeitgroßen Werteliste

In einem typischen Programmierszenario werden Sie auf eine Situation stoßen, in der Sie alle möglichen Kombinationen von Elementen aus einer bestimmten Liste von Ganzzahlen generieren müssen. Um dies in C# zu erreichen, führen Sie die folgenden Schritte aus:

  1. Bestimmen Sie die Größe der Laufzeitliste: Erstellen Sie eine Liste von Ganzzahlen, die mit dem spezifischen Wert initialisiert werden, den Sie haben. Sie können auch generisches List<int> verwenden, um eine beliebige Anzahl von Elementen zur Laufzeit unterzubringen.
  2. Berechnen Sie die Anzahl der Kombinationen: Für eine Liste mit n Elementen wird die Anzahl der Kombinationen durch 2^n angegeben, wobei die binäre Darstellung der ganzen Zahl verwendet wird. Mit diesem Wert können Sie alle möglichen Kombinationen durchlaufen.
  3. Kombination generieren: Konvertieren Sie i für jeden Wert von i von 1 bis 2^n - 1 in eine binäre Zeichenfolge und füllen Sie bei Bedarf mit Nullen auf, um der Länge der Liste zu entsprechen. Diese Binärzeichenfolge stellt die Kombination der auszuwählenden Elemente dar.
  4. Element auswählen: Durchlaufen Sie die Binärzeichenfolge. Wenn ein Bit 1 ist, bedeutet dies, dass das entsprechende Element in der Kombination enthalten ist. Fügt ausgewählte Elemente zu einer temporären Liste hinzu.
  5. Kombinationen drucken: Drucken Sie die Elemente in der temporären Liste und wiederholen Sie diesen Vorgang für jede Kombination.

Das Folgende ist ein Beispielcode, der diesen Algorithmus implementiert:

<code class="language-csharp">using System;
using System.Collections.Generic;

public class CombinationGenerator
{
    public static void Main(string[] args)
    {
        GenerateCombinations(new List<int> { 1, 2, 3 });
    }

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

Mit diesem Algorithmus können Sie effizient alle möglichen Kombinationen von Elementen in einer Liste generieren, unabhängig von ihrer Größe.

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

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage