Heim >Backend-Entwicklung >PHP-Tutorial >Wie viele Permutationen gibt es für eine Menge von neun Zahlen und wie können sie in PHP generiert werden?

Wie viele Permutationen gibt es für eine Menge von neun Zahlen und wie können sie in PHP generiert werden?

DDD
DDDOriginal
2024-12-17 01:19:25266Durchsuche

How Many Permutations Exist for a Set of Nine Numbers and How Can They Be Generated in PHP?

Aufzählung aller Permutationsmengen von Zahlen

Im Bereich der Kombinatorik bezieht sich eine Permutation auf eine geordnete Anordnung von Elementen aus einer gegebenen Menge. Bei einer Reihe von Zahlen im Bereich von 0 bis 8 besteht die Herausforderung darin, alle möglichen Permutationen zu generieren, bei denen jede Zahl genau einmal in einer Menge vorkommt.

Permutationen berechnen

Die Die Formel zur Berechnung der Anzahl der Permutationen von n Elementen, jeweils k genommen, lautet:

nPk = n! / (n - k)!

In diesem Fall ist n = 9 und k = 9, wir haben:

9P9 = 9! = 362,880

Daher gibt es 362.880 mögliche Permutationen der gegebenen Menge.

PHP-Implementierung

Eine Möglichkeit, diese Permutationen in PHP zu generieren, ist eine rekursive Methode Algorithmus:

<?php
pc_permute([0, 1, 2, 3, 4, 5, 7, 8]);

function pc_permute($items, $perms = array()) {
    if (empty($items)) { 
        print join(' ', $perms) . "\n";
    }  else {
        for ($i = count($items) - 1; $i >= 0; --$i) {
            $newitems = $items;
            $newperms = $perms;
            list($foo) = array_splice($newitems, $i, 1);
            array_unshift($newperms, $foo);
            pc_permute($newitems, $newperms);
        }
    }
}
?>

Beispielausgabe

Das Ausführen dieses Codes erzeugt die folgenden Beispielpermutationen:

0 1 2 3 4 5 6 7 8
0 1 2 3 4 5 6 8 7
0 1 2 3 4 5 7 6 8
0 1 2 3 4 5 7 8 6
0 1 2 3 4 5 8 6 7
0 1 2 3 4 5 8 7 6
...

Das obige ist der detaillierte Inhalt vonWie viele Permutationen gibt es für eine Menge von neun Zahlen und wie können sie in PHP generiert werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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