Heim >Backend-Entwicklung >PHP-Tutorial >Wie viele Permutationen gibt es für einen gegebenen Zahlensatz und wie können sie in PHP generiert werden?

Wie viele Permutationen gibt es für einen gegebenen Zahlensatz und wie können sie in PHP generiert werden?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-13 20:54:21376Durchsuche

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

Alle möglichen Zahlenmengen mithilfe von Permutationen finden

Berechnung aller möglichen Zahlenmengen aus einem bestimmten Bereich, die alle Zahlen verwenden und jede Zahl zulassen nur einmal erscheinen, beinhaltet das mathematische Konzept der Permutationen. Die Permutationsformel berechnet die Anzahl der eindeutigen Anordnungen oder Ordnungen einer Menge von Elementen.

Für eine Menge von n Zahlen, wobei n! stellt die Fakultät von n (n (n-1) (n-2) ... * 1 dar), die Gesamtzahl der Permutationen ist gegeben durch:

nPk = n!/(n-k)!

Dabei In diesem Fall beträgt die Anzahl der Permutationen mit 9 Zahlen und der Auswahl aller (k=n):

9P9 = 362,880

Um diese Permutationen in PHP zu generieren, kann man verwenden Diese Funktion wird von O'Reillys „PHP Cookbook“ bereitgestellt:

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

Wenn Sie diese Funktion mit der Zahlenmenge aufrufen, z. B.:

pc_permute(array(0, 1, 2, 3, 4, 5, 7, 8));

werden alle möglichen Permutationen ausgedruckt, einschließlich die bereitgestellten Beispiele:

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

Das obige ist der detaillierte Inhalt vonWie viele Permutationen gibt es für einen gegebenen Zahlensatz 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