Salutations,
Avec quelques camarades, nous travaillons depuis quelques mois sur un projet.
Dans celui-ci, il nous faut trier une liste d’élèves d’une école dans des classes selon certaines contraintes.
Celle qui me pose problème est la contrainte de la parité de sexe, où, chaque classe doit contenir un nombre équivalent de garçons et de filles, et qui tolère un écart maximal de 4 filles ou garçons en plus.
Pour rendre plus simple les tests, j’avais créé un bout de code fictif qui contenait une liste de listes pour chaque élève avec le prénom de chaque élève et son sexe ci-dessous :
liste=[(‘Jean´, ‘M’), (‘Enzo´, ‘M’), (‘Juliette´, ‘F’), (‘Blanche´, ‘F’), (‘Aurore´, ‘F’), (‘Gabriel ´, ‘M’), (‘Marc´, ‘M’), (‘Manon´, ‘F’), (‘Emma´, ‘F’), (‘Ulysse´, ‘M’), (‘Kevin´, ‘M’), (‘Iris´, ‘F’), (‘Jeremy´, ‘M’), (‘Michel´, ‘M’), (‘Noemie´, ‘F’), (‘Axel´, ‘M’), (‘Yanis´, ‘M’), (‘Solene´, ‘F’), (‘Alice´, ‘F’), (‘Valerie´, ‘F’)]
Le but est de trier les élèves dans 2 classes différentes représentées par des listes qui sont situés dans un dictionnaire.
classes={´Classes’: {´1’: [], ‘2’: []}}
J'avais déjà essayé avec un petit bout de code au dessus, mais je me retrouve bloqué, et ne voulant pas utiliser d'IA, j'aimerais vous demander votre aide.
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 from math import * liste=[('BLANCHE', 'F'),('JEAN', 'M'),('CAMILLE', 'F'),('MARC', 'M'),('MANON', 'F'),('TOM', 'M'),('ALICE', 'F'),('ADRIEN', 'F'),('JOSIE', 'F'),('ARTHUR', 'M'),('EMMA', 'F'),('TEO', 'M'),('AURORE', 'F'),('JULIETTE', 'F')] def parite_homme_femme(liste): compteur_m=0 compteur_f=0 for i in range(len(liste)): if liste[i][1]=='M': compteur_m+=1 else: compteur_f+=1 classes={'Classe': {'1': [], '2': []}} nb_eleves=ceil(len(liste)/2) difference=0 if compteur_m>compteur_f: difference=compteur_m-compteur_f else: difference=compteur_f-compteur_m difference=ceil(difference/2) for j in liste: if len(classes['Classe'][1])<nb_eleves
Merci d'avance !
Partager