Fonction de tri
Fermé
enam07
Messages postés
5
Date d'inscription
vendredi 2 janvier 2015
Statut
Membre
Dernière intervention
11 avril 2015
-
11 avril 2015 à 21:16
Utilisateur anonyme - 28 avril 2015 à 15:57
Utilisateur anonyme - 28 avril 2015 à 15:57
A voir également:
- Fonction de tri
- Fonction si et - Guide
- Tri excel - Guide
- Logiciel de tri de photos - Guide
- Fonction moyenne excel - Guide
- Fonction somme excel - Guide
1 réponse
Utilisateur anonyme
28 avril 2015 à 15:57
28 avril 2015 à 15:57
Merci de prendre l'habitude d'insérer ton code Python bien indenté. Pour cela, au dessus de l'espace ou tu tapes ton texte sur le forum, clique sur le menu déroulant <> et choisi "python". Ensuite, colle ton code entre les deux bornes python créées dans ton message.
J'ai fait le boulot à ta place et voici ce que ça donne :
Déjà, il y a un petit problème de logique. Dans ta fonction donne(), tu choisi 5 cartes c1,c2,c3,c4,c5 comprise dans le jeu. Mais tu n'a pas fait attention que, dans ces 5 cartes, il pouvait y en avoir plusieurs identiques (d'après ton code). Sauf s'il s'agit d'un tirage simultané avec remise, il y a une erreur.
J'ai fait le boulot à ta place et voici ce que ça donne :
T2=['pique','coeur','carreau','trèfle'] T1=['as','roi','dame','valet','10','9','8','7','6','5','4','3','2'] from random import randint def indice_mini(T,i): n=len(T) assert i!=n m=i for k in range(i+1,n): if T[k]>T[m] : m=k if m!=i : T[i],T[m]=T[m],T[i] return m def tri_selection(T): for j in range(0,len(T)-1): indice_mini(T,j) return T def init_jeu(): resultat = [] for card in T1: for fig in T2: resultat.append(card + ' ' + fig) return resultat def superieur(carte1,carte2): T=init_jeu() for i in range(len(T)): if T[i]==carte1: return True if T[i]==carte2: return False def donne(): i=0 T=init_jeu() c1=[] c2=[] c3=[] c4=[] while i<14 : c1.append(T[randint(0,51)]) c2.append(T[randint(0,51)]) c3.append(T[randint(0,51)]) c4.append(T[randint(0,51)]) i=i+1 tri_selection(C1) tri_selection(c2) tri_selection(c3) tri_selection(c4) return c1 def indice_minie(T,i): mi=T[i] m=i for j in range(i,len(T)): if mi>T[i]: mi=T[i] m=j return m
Déjà, il y a un petit problème de logique. Dans ta fonction donne(), tu choisi 5 cartes c1,c2,c3,c4,c5 comprise dans le jeu. Mais tu n'a pas fait attention que, dans ces 5 cartes, il pouvait y en avoir plusieurs identiques (d'après ton code). Sauf s'il s'agit d'un tirage simultané avec remise, il y a une erreur.