Bonjour à tous,
Je manque de logique sur la façon de faire une liste bien particulière (ou un tableau si vous avez votre propre idée) :
En gros j'ai besoin de générer une liste aléatoire mais avec des conditions. Pour l'instant j'ai réussi à faire 3 conditions mais je viens de voir que j'ai une exception que je n'avais pas prévu
j'ai besoin de : une liste de 5 couples aleatoires (10 nombres) de 20 à 24 dans mon exemple, avec les conditions suivantes :
1) jamais plus de 2 fois le même nombre dans une liste (ce qui revient à avoir obligatoirement chaque nombre présent 2 fois en tout dans la liste)
2) jamais deux nombres identiques dans un même couple
3) ce que je n'arrive pas à faire : jamais deux couples identiques au sein de la liste (si j'ai (20,21), je ne veux pas d'un autre (20,21), ni d'un (21,20)
De plus le problème qu'il peut arriver c'est que la seule combinaison possible restante soit deux nombres identiques (mais donc impossible et ça boucle en continu)
Si vous avez une idée et même une façon plus simple et plus propre de faire ça je suis preneur (comparaison de tableau peut etre)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 couples = [] i = 0 while len(couples) < 10: couples.append(randrange(20, 25)) #Si l'alea en cours est égal à sa paire if i%2 == 1 and couples[i] == couples[i-1]: #le supprimer de la liste del couples[i] continue #Si on arrive au dernier alea et qu'il y a plus de 2 fois le meme nombre if i == 9 and couples.count(couples[i])>= 3 : #Reinitialiser la liste couples = [] i = 0 continue #A partir du deuxième couple, s'il y a plus de 2 fois le même nombre if i >= 2 and couples.count(couples[i])>= 3 : #supprimer l'alea en cours del couples[i] continue else: i += 1
Merci d'avance.
Bon week-end.
Partager