Heim > Backend-Entwicklung > PHP-Tutorial > Wie generiert man alle Kombinationen einer bestimmten Größe aus einem Satz?

Wie generiert man alle Kombinationen einer bestimmten Größe aus einem Satz?

Linda Hamilton
Freigeben: 2024-11-17 04:02:03
Original
1051 Leute haben es durchsucht

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

Algorithmus zum Generieren von Kombinationen spezifischer Größe aus einer Menge

In der Statistik bezieht sich Stichprobe auf die Gewinnung einer Teilmenge einer Population, um die gesamte Population darzustellen. Das Ziel besteht darin, alle möglichen Kombinationen einer bestimmten Größe aus einem gegebenen Satz von Elementen zu generieren.

Um dies zu erreichen, können wir einen rekursiven Algorithmus verwenden, wie unten gezeigt:

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

    # Initialize the starting combinations as the original set
    if (empty($combinations)) {
        $combinations = $chars;
    }

    # Base case: stop if we've reached the desired size
    if ($size == 1) {
        return $combinations;
    }

    $new_combinations = array();

    # Iterate over existing combinations and add new characters
    foreach ($combinations as $combination) {
        foreach ($chars as $char) {
            $new_combinations[] = $combination . $char;
        }
    }

    # Call the function recursively to generate the next iteration of combinations
    return sampling($chars, $size - 1, $new_combinations);
}
Nach dem Login kopieren

Beispiel :

$chars = array('a', 'b', 'c');
$output = sampling($chars, 2);

# Display the generated combinations
var_dump($output);
/*
Expected 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"
}
*/
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie generiert man alle Kombinationen einer bestimmten Größe aus einem Satz?. 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