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
Barbara StreisandOriginal
2024-12-21 21:52:38437Durchsuche

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)]

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)]

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)

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!

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