Rumah > pembangunan bahagian belakang > tutorial php > Bagaimana untuk Menjana Semua Gabungan Saiz Tertentu daripada Set Tunggal dalam PHP?

Bagaimana untuk Menjana Semua Gabungan Saiz Tertentu daripada Set Tunggal dalam PHP?

DDD
Lepaskan: 2024-11-29 01:03:11
asal
159 orang telah melayarinya

How to Generate All Combinations of a Specific Size from a Single Set in PHP?

Cara Menjana Semua Gabungan Saiz Tertentu daripada Set Tunggal dalam PHP

Memandangkan susunan aksara dan saiz gabungan yang diingini, tugasnya adalah untuk menjana semua kemungkinan kombinasi saiz tertentu itu. Artikel ini meneroka algoritma untuk mencapai ini menggunakan PHP, membezakannya daripada pilih atur yang mengulang aksara tidak dibenarkan.

Algoritma

Algoritma adalah berdasarkan rekursi. Berikut ialah penjelasan terperinci:

  1. Permulaan: Jika algoritma dijalankan buat kali pertama, set awal gabungan ditetapkan kepada tatasusunan aksara yang diberikan.
  2. Saiz Semakan: Jika saiz gabungan yang diingini ialah 1, set gabungan semasa dikembalikan sebagai hasil.
  3. Mencipta Gabungan Baharu: Untuk setiap gabungan dalam set semasa dan setiap aksara dalam tatasusunan asal, gabungan baharu dicipta dengan menggabungkan gabungan semasa dan aksara.
  4. Panggilan Rekursif: Fungsi dipanggil secara rekursif dengan set kombinasi baharu dan pengurangan gabungan yang diingini saiz.
  5. Hasil: Hasil akhir ialah output yang dikembalikan selepas rekursi selesai.

Contoh Pelaksanaan

Di bawah adalah contoh kerja dalam PHP:

function sampling($chars, $size, $combinations = array()) {

    if (empty($combinations)) {
        $combinations = $chars;
    }

    if ($size == 1) {
        return $combinations;
    }

    $new_combinations = array();
    foreach ($combinations as $combination) {
        foreach ($chars as $char) {
            $new_combinations[] = $combination . $char;
        }
    }

    return sampling($chars, $size - 1, $new_combinations);

}

// Example
$chars = array('a', 'b', 'c');
$output = sampling($chars, 2);
var_dump($output);
Salin selepas log masuk

Output:

array(9) {
  [0]=>
  string(2) "aa"
  [1]=>
  string(2) "ab"
  [2]=>
  string(2) "ac"
  [3]=>
  string(2) "ba"
  [4]=>
  string(2) "bb"
  [5]=>
  string(2) "bc"
  [6]=>
  string(2) "ca"
  [7]=>
  string(2) "cb"
  [8]=>
  string(2) "cc"
}
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Menjana Semua Gabungan Saiz Tertentu daripada Set Tunggal dalam PHP?. 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan