Heim > Backend-Entwicklung > PHP-Tutorial > Wie erzeuge ich mit PHP alle Permutationen der Zahlen 0-8?

Wie erzeuge ich mit PHP alle Permutationen der Zahlen 0-8?

DDD
Freigeben: 2024-12-15 10:52:10
Original
408 Leute haben es durchsucht

How to Generate All Permutations of Numbers 0-8 Using PHP?

Permutationen von Zahlen berechnen

Anhand einer Reihe von Zahlen von 0 bis 8 besteht die Aufgabe darin, alle möglichen Permutationen dieser Zahlen zu generieren. In einer Permutation kann jede Zahl nur einmal vorkommen.

Um dieses Problem zu verstehen, beschäftigen wir uns mit dem mathematischen Konzept der Permutationen. Die Permutationsformel besagt, dass die Gesamtzahl der Permutationen von 'n' Elementen, die jeweils 'k' genommen werden, wie folgt gegeben ist:

nPk = n!/(n-k)!
Nach dem Login kopieren

In unserem Fall wollen wir alle 9 Zahlen permutieren, also k = n = 9. Das ergibt 9! = 362880 mögliche Permutationen.

PHP-Implementierung

PHP bietet Funktionen zum Generieren von Permutationen. Zu diesem Zweck kann die Funktion pc_permute() eingesetzt werden, wie im folgenden Code gezeigt:

function pc_permute($items, $perms = array()) {
    if (empty($items)) { 
        echo 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);
         }
    }
}
Nach dem Login kopieren

Beispielausgabe

Unter Verwendung der Funktion pc_permute() haben wir kann alle Permutationen der Zahlen 0 bis 8 ausgeben:

pc_permute(array(0, 1, 2, 3, 4, 5, 7, 8));
Nach dem Login kopieren

Dadurch wird Folgendes generiert Ausgabe:

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 6 5 7 8
0 1 2 3 4 6 7 8 5
0 1 2 3 4 7 5 6 8
0 1 2 3 4 7 5 8 6
0 1 2 3 4 7 6 5 8
0 1 2 3 4 7 6 8 5
0 1 2 3 4 7 8 5 6
0 1 2 3 4 7 8 6 5
0 1 2 3 4 8 5 6 7
0 1 2 3 4 8 5 7 6
0 1 2 3 4 8 6 5 7
0 1 2 3 4 8 6 7 5
0 1 2 3 4 8 7 5 6
0 1 2 3 4 8 7 6 5
0 1 2 3 5 4 6 7 8
0 1 2 3 5 4 6 8 7
0 1 2 3 5 4 7 6 8
0 1 2 3 5 4 7 8 6
0 1 2 3 5 4 8 6 7
0 1 2 3 5 4 8 7 6
0 1 2 3 5 6 4 7 8
0 1 2 3 5 6 4 8 7
0 1 2 3 5 6 7 4 8
0 1 2 3 5 6 7 8 4
0 1 2 3 5 6 8 4 7
0 1 2 3 5 6 8 7 4
0 1 2 3 5 7 4 6 8
0 1 2 3 5 7 4 8 6
0 1 2 3 5 7 6 4 8
0 1 2 3 5 7 6 8 4
0 1 2 3 5 7 8 4 6
0 1 2 3 5 7 8 6 4
0 1 2 3 5 8 4 6 7
0 1 2 3 5 8 4 7 6
0 1 2 3 5 8 6 4 7
0 1 2 3 5 8 6 7 4
0 1 2 3 5 8 7 4 6
0 1 2 3 5 8 7 6 4
0 1 2 3 6 4 5 7 8
0 1 2 3 6 4 5 8 7
0 1 2 3 6 4 7 5 8
0 1 2 3 6 4 7 8 5
0 1 2 3 6 4 8 5 7
0 1 2 3 6 4 8 7 5
0 1 2 3 6 5 4 7 8
0 1 2 3 6 5 4 8 7
0 1 2 3 6 5 7 4 8
0 1 2 3 6 5 7 8 4
0 1 2 3 6 5 8 4 7
0 1 2 3 6 5 8 7 4
0 1 2 3 6 7 4 5 8
0 1 2 3 6 7 4 8 5
0 1 2 3 6 7 5 4 8
0 1 2 3 6 7 5 8 4
0 1 2 3 6 7 8 4 5
0 1 2 3 6 7 8 5 4
0 1 2 3 6 8 4 5 7
0 1 2 3 6 8 4 7 5
0 1 2 3 6 8 5 4 7
0 1 2 3 6 8 5 7 4
0 1 2 3 6 8 7 4 5
0 1 2 3 6 8 7 5 4
0 1 2 3 7 4 5 6 8
0 1 2 3 7 4 5 8 6
0 1 2 3 7 4 6 5 8
0 1 2 3 7 4 6 8 5
0 1 2 3 7 4 8 5 6
0 1 2 3 7 4 8 6 5
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie erzeuge ich mit PHP alle Permutationen der Zahlen 0-8?. 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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage