Maison > développement back-end > Tutoriel Python > Comment le produit cartésien peut-il générer des permutations avec des répétitions ?

Comment le produit cartésien peut-il générer des permutations avec des répétitions ?

Barbara Streisand
Libérer: 2024-12-21 21:52:38
original
433 Les gens l'ont consulté

How Can Cartesian Product Generate Permutations with Repetitions?

Obtenir des permutations avec des répétitions à l'aide d'un produit cartésien

Introduction

Lors de la génération de permutations à partir d'une liste, la bibliothèque itertools standard saute combinaisons où les éléments se répètent. Pour obtenir toutes les permutations possibles, y compris celles avec répétitions, le produit cartésien est utilisé.

Permutations Itertools

La fonction permutations() dans itertools génère des permutations sans répétitions. Dans le cas des lancers de dés, cela exclut les combinaisons comme (1, 1), où le même nombre apparaît sur les deux dés.

Produit cartésien

Le produit cartésien entre two sets crée un nouvel ensemble contenant toutes les paires ordonnées où le premier élément provient du premier ensemble et le deuxième élément provient du deuxième ensemble. Par exemple, le produit cartésien de {1, 2} et {3, 4} est {(1, 3), (1, 4), (2, 3), (2, 4)}.

Application du produit cartésien aux lancers de dés

Pour générer toutes les combinaisons possibles de lancer de dés avec des répétitions à l'aide du cartésien produit :

import itertools
x = [1, 2, 3, 4, 5, 6]
dice_combinations = [p for p in itertools.product(x, repeat=2)]
Copier après la connexion

Exemple de résultat

Le résultat sera une liste de 36 paires ordonnées, y compris des combinaisons telles que (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)]
Copier après la connexion

Lancer de dés aléatoire

Un lancer de dés aléatoire peut être obtenu en en sélectionnant une paire dans la liste de produits cartésiens :

import random
random_roll = random.choice(dice_combinations)
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal