Website-Suche

Permutation und Kombinationen in Python


Permutation und Kombination einer Menge von Elementen sind verschiedene Anordnungen der Elemente der Menge.

  • Kombination ist eine Sammlung von Elementen, bei der die Reihenfolge keine Rolle spielt.
  • Permutation ist eine Anordnung einer Menge, bei der die Reihenfolge eine Rolle spielt.

Betrachten wir eine Menge als:

{A, B, C}

Die Permutationen der obigen Menge sind wie folgt:

('A', 'B', 'C')
('A', 'C', 'B')
('B', 'A', 'C')
('B', 'C', 'A')
('C', 'A', 'B')
('C', 'B', 'A')

Die Kombinationen des oben genannten Sets, wenn zwei Elemente zusammen genommen werden, sind:

('A', 'B')
('A', 'C')
('B', 'C')

In diesem Tutorial werden wir lernen, wie man die Permutationen und Kombinationen einer Gruppe von Elementen in Python erhält. Wir werden uns Sets von Buchstaben und Zahlen ansehen.

Wir werden die Methoden combinations() und permutations() aus dem itertools Modul von Python verwenden.

Lass uns anfangen.

Permutationen von numerischen Daten

Um die permutations() Methode im itertools-Modul zu verwenden, müssen wir zuerst das Modul importieren.

import itertools

Lass uns jetzt eine Menge von Zahlen definieren.

val = [1, 2, 3, 4]

Um nun die Liste der Permutationen zu erhalten, verwenden wir die Methode permutations().

perm_set = itertools.permutations(val)

Die obenstehende Codezeile gibt ein itertools-Objekt zurück. Um die verschiedenen Permutationen auszugeben, werden wir über dieses Objekt iterieren.

for i in perm_set:
    print(i)

Wir erhalten die Ausgabe wie folgt:

1 2 3 4
1 2 4 3
1 3 2 4
1 3 4 2
1 4 2 3
1 4 3 2
2 1 3 4
2 1 4 3
2 3 1 4
2 3 4 1
2 4 1 3
2 4 3 1
3 1 2 4
3 1 4 2
3 2 1 4
3 2 4 1
3 4 1 2
3 4 2 1
4 1 2 3
4 1 3 2
4 2 1 3
4 2 3 1
4 3 1 2
4 3 2 1

Der vollständige Code für diesen Abschnitt ist unten angegeben:

import itertools
 
val = [1, 2, 3, 4]
 
perm_set = itertools.permutations(val)
 
for i in perm_set:
    print(i)

Permutationen eines Strings

Als nächstes lernen wir, wie man die Permutationen von Zeichen in einer Zeichenfolge erhält.

Wir werden die Methode permutations() verwenden, aber dieses Mal werden wir einen String als Argument übergeben.

import itertools
 
s = "ABC"

perm_set = itertools.permutations(s)
for val in perm_set:
    print(val)

Ausgabe :

('A', 'B', 'C')
('A', 'C', 'B')
('B', 'A', 'C')
('B', 'C', 'A')
('C', 'A', 'B')
('C', 'B', 'A')

Permutationen fester Länge

Wir können Permutationen einer Menge finden, bei denen wir nur eine festgelegte Anzahl von Elementen in jeder Permutation nehmen. Dies ähnelt nPr im Bereich der Mathematik.

Der Code zum Finden von Permutationen fester Länge ist unten angegeben:

import itertools
 
val = [1, 2, 3, 4]
 
perm_set = itertools.permutations(val,2)
 
for i in perm_set:
    print(i)

Ausgabe :

(1, 2)
(1, 3)
(1, 4)
(2, 1)
(2, 3)
(2, 4)
(3, 1)
(3, 2)
(3, 4)
(4, 1)
(4, 2)
(4, 3)

Kombinationen von numerischen Daten

Genauso wie die Methode permutations() können wir auch combinations() verwenden, ebenfalls unter itertools, um die Kombinationen einer Menge zu erhalten.

Beim Aufrufen von combinations() müssen wir zwei Argumente übergeben: die Menge, aus der wir Kombinationen bilden möchten, und eine Zahl, die die Länge jeder Kombination angibt.

import itertools
 
val = [1, 2, 3, 4]
 
com_set = itertools.combinations(val, 2)
 
for i in com_set:
    print(i)

Ausgabe :

(1, 2)
(1, 3)
(1, 4)
(2, 3)
(2, 4)
(3, 4)

Kombinationen eines Strings

Wir können auch Kombinationen eines Strings erhalten. Um die Kombinationen eines Strings zu erhalten, verwenden Sie den folgenden Code:

import itertools
 
s = "ABC"
 
com_set = itertools.combinations(s, 2)
 
for i in com_set:
    print(i)

Ausgabe :

('A', 'B')
('A', 'C')
('B', 'C')

Kombinationen mit Wiederholungen

Es gibt eine weitere Methode im itertools-Modul, die combinations_with_replacement() heißt. Diese Methode berücksichtigt auch die Kombination einer Zahl mit sich selbst.

Lass uns sehen, wie es funktioniert.

Für die numerische Menge

import itertools
 
val = [1, 2, 3, 4]
 
com_set = itertools.combinations_with_replacement(val, 2)
 
for i in com_set:
    print(i)

Ausgabe :

(1, 1)
(1, 2)
(1, 3)
(1, 4)
(2, 2)
(2, 3)
(2, 4)
(3, 3)
(3, 4)
(4, 4)

Sie können den Unterschied im obigen Ergebnis und dem Ergebnis für die Operation einer normalen Kombination sehen. Hier haben wir Kombinationen wie (1,1) und (2,2), die in der regulären Kombinationsoperation nicht vorhanden sind.

Für einen String

import itertools
 
val = "ABCD"
 
com_set = itertools.combinations_with_replacement(val, 2)
 
for i in com_set:
    print(i)

Ausgabe :

('A', 'A')
('A', 'B')
('A', 'C')
('A', 'D')
('B', 'B')
('B', 'C')
('B', 'D')
('C', 'C')
('C', 'D')
('D', 'D')

Schlussfolgerung

Dieses Tutorial handelte von der Auffindung von Permutationen und Kombinationen einer Menge in Python. Wir haben das in Python verfügbare itertools-Modul verwendet, um die Permutationen und Kombinationen zu finden.