Heim > Backend-Entwicklung > PHP-Tutorial > Wie kann ich aus einem Zeichensatz alle Kombinationen einer bestimmten Größe generieren?

Wie kann ich aus einem Zeichensatz alle Kombinationen einer bestimmten Größe generieren?

Patricia Arquette
Freigeben: 2024-11-27 12:11:13
Original
988 Leute haben es durchsucht

How Can I Generate All Combinations of a Specific Size from a Character Set?

Bestimmen aller Kombinationen bestimmter Größen aus einem Zeichensatz

Diese Untersuchung sucht nach einem Algorithmus, der in der Lage ist, alle möglichen Kombinationen einer bestimmten Größe daraus zu generieren ein vorgegebener Zeichensatz. Lassen Sie uns eine Lösung mithilfe einer rekursiven Funktion untersuchen:

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);
}
Nach dem Login kopieren

Betrachten Sie ein Beispiel mit $chars = ['a', 'b', 'c']:

$output = sampling($chars, 2);
var_dump($output);
Nach dem Login kopieren

The Die Ausgabe zeigt alle möglichen Kombinationen der Größe 2 an:

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"
}
Nach dem Login kopieren

Dieser rekursive Ansatz generiert effektiv alle Kombinationen und stellt sicher, dass auch Kombinationen von Größen, die größer als das ursprüngliche Set sind, sind möglich.

Das obige ist der detaillierte Inhalt vonWie kann ich aus einem Zeichensatz alle Kombinationen einer bestimmten Größe generieren?. 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