Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Menjana Semua Kemungkinan Gabungan daripada Senarai Integer dalam C#?

Bagaimana untuk Menjana Semua Kemungkinan Gabungan daripada Senarai Integer dalam C#?

DDD
DDDasal
2025-01-16 17:12:38977semak imbas

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

Senaraikan semua gabungan dalam senarai nilai

Dalam C#, diberikan senarai integer yang dinamik, selalunya perlu untuk menjana semua kemungkinan gabungan elemennya. Contohnya, untuk senarai {1, 2, 3}, anda perlu menjana gabungan berikut:

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

Untuk melakukan ini, gunakan algoritma berikut:

  1. Mulakan pembilang: Gunakan kuasa 2 (kuasa ialah bilangan elemen dalam senarai) untuk menentukan bilangan gabungan yang mungkin.
  2. Tukar pembilang kepada perduaan: Wakilkan pembilang dalam format perduaan, padding dengan sifar yang diperlukan untuk memadankan panjang senarai input.
  3. Ekstrak gabungan elemen: Untuk setiap bit dalam perwakilan binari, jika bit ditetapkan kepada "1", keluarkan elemen pada indeks yang sepadan dalam senarai input.
  4. Pembilang lelaran: Naikkan pembilang sehingga ia mencapai bilangan gabungan maksimum yang mungkin.
  5. Gabungan cetak: Keluarkan setiap gabungan pada baris yang berasingan.

Kod C# yang disediakan menunjukkan pelaksanaan algoritma ini:

<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>

Atas ialah kandungan terperinci Bagaimana untuk Menjana Semua Kemungkinan Gabungan daripada Senarai Integer dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn