Bibm@th

Forum de mathématiques - Bibm@th.net

Bienvenue dans les forums du site BibM@th, des forums où on dit Bonjour (Bonsoir), Merci, S'il vous plaît...

Vous n'êtes pas identifié(e).

#1 12-11-2011 23:18:43

tibo
Membre expert
Inscription : 23-01-2008
Messages : 1 097

[Python] Algorithme de génération de toutes les permutations

Salut,

comme prévu j'ouvre un topic à ce sujet.
Le but est de trouver un algorithme capable de générer toutes les permutations de n éléments
par exemple, si l'utilisateur rentre le nombre 3, le programme renverrait:
[[1, 2, 3], [1, 3, 2], [2, 1, 3], [2, 3, 1], [3, 1, 2], [3, 2, 1]]

Voila, je passerais plus tard plus exposer mes précédentes tentatives.


A quoi sert une hyperbole?
----- A boire de l'hypersoupe pardi !

Hors ligne

#2 13-11-2011 08:01:52

karlun
Membre
Inscription : 05-05-2010
Messages : 216

Re : [Python] Algorithme de génération de toutes les permutations

Bonjour,

Le petit programme sans répétition proposé dans "jeux de lettres" (http://www.bibmath.net/forums/viewtopic … 944#p32944) me semble parfaitement fonctionner mis à part qu'il faut introduire 'à la main les données (c'est un détail).

pour [123], la réponse donne:


>>>
['213', '312', '231', '132', '123', '321']
>>>
 

pour [1234]


>>>
['1324', '4321', '2431', '3142', '3412', '3214', '1423', '2341', '4123', '2413', '3124', '3421', '1342', '1234', '4312', '4213', '2134', '4231', '1432', '3241', '1243', '2143', '2314', '4132']
>>>

A+-*/

PS: Pour ne plus devoir introduire à la main les éléments à permuter, on peut remplacer la ligne 5 par:

mot,x,n='',0,[]
y=input("entrez le nombre d'éléments à permuter:   ")
y=range(1,y+1,1)
for j in y:
    mot+=str(j)
mot=''.join(mot)
print mot

(Je suis sûr que ça pourrait être plus court... je cherche.)

Dernière modification par karlun (13-11-2011 09:40:41)


Qui trouve, cherche.

Hors ligne

#3 13-11-2011 14:28:44

tibo
Membre expert
Inscription : 23-01-2008
Messages : 1 097

Re : [Python] Algorithme de génération de toutes les permutations

Ha bah mince alors!!! ça marche en plus!!!

Comme quoi faut pas pas chercher trop compliqué.
Dire que je me suis cassé la tête longtemps sur ce problème .

Bon, cela devrait régler mon problème de mémoire.
Je verrai ça cet aprem ou ce soir


A quoi sert une hyperbole?
----- A boire de l'hypersoupe pardi !

Hors ligne

Réponse rapide

Veuillez composer votre message et l'envoyer
Nom (obligatoire)

E-mail (obligatoire)

Message (obligatoire)

Programme anti-spam : Afin de lutter contre le spam, nous vous demandons de bien vouloir répondre à la question suivante. Après inscription sur le site, vous n'aurez plus à répondre à ces questions.

Quel est le résultat de l'opération suivante (donner le résultat en chiffres)?
quatre-vingt dix-neuf moins quatre
Système anti-bot

Faites glisser le curseur de gauche à droite pour activer le bouton de confirmation.

Attention : Vous devez activer Javascript dans votre navigateur pour utiliser le système anti-bot.

Pied de page des forums