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

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

Patricia Arquette
Lepaskan: 2025-01-16 17:17:11
asal
132 orang telah melayarinya

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

Janakan semua kombinasi yang mungkin daripada senarai nilai bersaiz runtime

Dalam senario pengaturcaraan biasa, anda akan menghadapi situasi di mana anda perlu menjana semua kemungkinan gabungan elemen daripada senarai integer yang diberikan. Untuk mencapai ini dalam C#, ikuti langkah berikut:

  1. Tentukan saiz senarai masa jalan: Buat senarai integer yang dimulakan dengan nilai khusus yang anda miliki. Anda juga boleh menggunakan List<int> generik untuk menampung sebarang bilangan elemen pada masa jalan.
  2. Hitung bilangan gabungan: Untuk senarai n elemen, bilangan gabungan diberikan oleh 2^n, menggunakan perwakilan binari integer. Anda boleh menggunakan nilai ini untuk menggelungkan semua kombinasi yang mungkin.
  3. Jana kombinasi: Untuk setiap nilai i daripada 1 hingga 2^n - 1, tukar i kepada rentetan binari, padding dengan sifar jika perlu untuk memadankan panjang senarai. Rentetan binari ini mewakili gabungan elemen untuk dipilih.
  4. Pilih elemen: Lintas rentetan binari. Jika bit ialah 1, ia bermakna elemen yang sepadan dimasukkan dalam gabungan. Menambah elemen yang dipilih pada senarai sementara.
  5. Kombinasi cetak: Cetak elemen dalam senarai sementara dan ulangi proses ini untuk setiap gabungan.

Berikut ialah kod sampel yang melaksanakan algoritma ini:

<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>
Salin selepas log masuk

Menggunakan algoritma ini, anda boleh menjana semua kemungkinan gabungan elemen dalam senarai dengan cekap, tanpa mengira saiznya.

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

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan