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
DDDasal
2024-11-29 01:03:11229semak imbas

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

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

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!

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