Heim > Backend-Entwicklung > Python-Tutorial > Wie kann ein kartesisches Produkt Permutationen mit Wiederholungen erzeugen?

Wie kann ein kartesisches Produkt Permutationen mit Wiederholungen erzeugen?

Barbara Streisand
Freigeben: 2024-12-21 21:52:38
Original
430 Leute haben es durchsucht

How Can Cartesian Product Generate Permutations with Repetitions?

Erhalten von Permutationen mit Wiederholungen mithilfe des kartesischen Produkts

Einführung

Beim Generieren von Permutationen aus einer Liste wird die Standardbibliothek itertools übersprungen Kombinationen, bei denen sich Elemente wiederholen. Um alle möglichen Permutationen zu erhalten, auch solche mit Wiederholungen, wird das kartesische Produkt verwendet.

Itertools-Permutationen

Die Funktion permutations() in itertools generiert Permutationen ohne Wiederholungen. Bei Würfelwürfen sind Kombinationen wie (1, 1) ausgeschlossen, bei denen auf beiden Würfeln die gleiche Zahl erscheint.

Kartesisches Produkt

Das kartesische Produkt zwischen „Zwei Mengen“ erstellt eine neue Menge, die alle geordneten Paare enthält, wobei das erste Element aus der ersten Menge und das zweite Element aus der zweiten Menge stammt. Beispielsweise ist das kartesische Produkt von {1, 2} und {3, 4} {(1, 3), (1, 4), (2, 3), (2, 4)}.

Kartesisches Produkt auf Würfelwürfe anwenden

Um alle möglichen Würfelwurfkombinationen mit Wiederholungen mithilfe des Kartesischen zu generieren Produkt:

import itertools
x = [1, 2, 3, 4, 5, 6]
dice_combinations = [p for p in itertools.product(x, repeat=2)]
Nach dem Login kopieren

Beispielergebnis

Die Ausgabe ist eine Liste von 36 geordneten Paaren, einschließlich Kombinationen wie (1, 1):

[(1, 1), (1, 2), (1, 3), (1, 4), (1, 5), (1, 6), (2, 1), (2, 2), (2, 3), (2, 4), (2, 5), (2, 6), (3, 1), (3, 2), (3, 3), (3, 4), (3, 5), (3, 6), (4, 1), (4, 2), (4, 3), (4, 4), (4, 5), (4, 6), (5, 1), (5, 2), (5, 3), (5, 4), (5, 5), (5, 6), (6, 1), (6, 2), (6, 3), (6, 4), (6, 5), (6, 6)]
Nach dem Login kopieren

Zufälliger Würfelwurf

Ein zufälliger Würfelwurf kann sein erhalten Sie durch Auswahl eines Paares aus der kartesischen Produktliste:

import random
random_roll = random.choice(dice_combinations)
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie kann ein kartesisches Produkt Permutationen mit Wiederholungen erzeugen?. 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