Forum de mathématiques - Bibm@th.net
Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
Pages : 1
Discussion fermée
#1 01-07-2018 13:23:58
- JpPhil
- Membre
- Inscription : 01-07-2018
- Messages : 1
Répartir un effectif de joueur dans des groupes
Bonjour,
Je oublié mes cours de maths et je cherche une solution pour résoudre la question suivante :
J'ai un effectif variable de sportif que je souhaite tous répartir dans des groupes composés de N joueurs ou N-1. Je cherche la formule qui me permet de trouver le nombre de N et de N-1.
Exemple:
32 joueurs à répartir en groupe de 7 = 2 groupes de 7 et 3 groupes de 6.
33 joueurs à répartir en groupe de 5 = 5 groupes de 5 et 2 groupes de 4.
Pour des petits effectifs, on trouve facilement par déduction, mais dès que le groupe est important c'est plus compliqué.
Si quelqu'un à une solution ce serait super, après je me débrouille pour entrer le calcul dans un tableau excel avec ou sans vba.
Hors ligne
#2 01-07-2018 17:15:33
- yoshi
- Modo Ferox
- Inscription : 20-11-2005
- Messages : 16 947
Re : Répartir un effectif de joueur dans des groupes
Bonjour,
Aurais-tu d'autres contraintes ?
J'ai écrit 10 lignes de Python (basiques, pour être facilement transposables)
Solutions pour 32 :
4 groupes de 5 et 3 groupes de 4 (*)
4 groupes de 3 et 10 groupes de 2
5 groupes de 4 et 4 groupes de 3
6 groupes de 3 et 7 groupes de 2 (**)
8 groupes de 3 et 4 groupes de 2
(*) ou encore 5 groupes de 4 et 4 groupes de 3
(**) ou encore 3 groupes de 6 et 2 groupes de 7
Solutions pour 82 :
4 groupes de 7 et 9 groupes de 6
4 groupes de 4 et 22 groupes de 3
4 groupes de 3 et 35 groupes de 2
5 groupes de 8 et 6 groupes de 7
6 groupes de 5 et 13 groupes de 4
6 groupes de 3 et 32 groupes de 2
7 groupes de 6 et 8 groupes de 5
7 groupes de 4 et 18 groupes de 3
8 groupes de 3 et 29 groupes de 2
10 groupes de 5 et 8 groupes de 4
10 groupes de 4 et 14 groupes de 3
10 groupes de 3 et 26 groupes de 2
12 groupes de 3 et 23 groupes de 2
13 groupes de 4 et 10 groupes de 3
14 groupes de 5 et 3 groupes de 4
14 groupes de 3 et 20 groupes de 2
16 groupes de 4 et 6 groupes de 3
16 groupes de 3 et 17 groupes de 2
18 groupes de 3 et 14 groupes de 2
20 groupes de 3 et 11 groupes de 2
22 groupes de 3 et 8 groupes de 2
24 groupes de 3 et 5 groupes de 2
Solutions pour 105 :
3 groupes de 18 et 3 groupes de 17
3 groupes de 7 et 14 groupes de 6
3 groupes de 4 et 31 groupes de 3
3 groupes de 3 et 48 groupes de 2
5 groupes de 11 et 5 groupes de 10
5 groupes de 6 et 15 groupes de 5
5 groupes de 5 et 20 groupes de 4
5 groupes de 3 et 45 groupes de 2
6 groupes de 12 et 3 groupes de 11
6 groupes de 10 et 5 groupes de 9
6 groupes de 4 et 27 groupes de 3
7 groupes de 8 et 7 groupes de 7
7 groupes de 3 et 42 groupes de 2
9 groupes de 9 et 3 groupes de 8
9 groupes de 7 et 7 groupes de 6
9 groupes de 5 et 15 groupes de 4
9 groupes de 4 et 23 groupes de 3
9 groupes de 3 et 39 groupes de 2
10 groupes de 6 et 9 groupes de 5
11 groupes de 3 et 36 groupes de 2
12 groupes de 4 et 19 groupes de 3
13 groupes de 5 et 10 groupes de 4
13 groupes de 3 et 33 groupes de 2
15 groupes de 6 et 3 groupes de 5
15 groupes de 4 et 15 groupes de 3
15 groupes de 3 et 30 groupes de 2
17 groupes de 5 et 5 groupes de 4
17 groupes de 3 et 27 groupes de 2
18 groupes de 4 et 11 groupes de 3
19 groupes de 3 et 24 groupes de 2
21 groupes de 4 et 7 groupes de 3
21 groupes de 3 et 21 groupes de 2
23 groupes de 3 et 18 groupes de 2
24 groupes de 4 et 3 groupes de 3
25 groupes de 3 et 15 groupes de 2
27 groupes de 3 et 12 groupes de 2
29 groupes de 3 et 9 groupes de 2
31 groupes de 3 et 6 groupes de 2
33 groupes de 3 et 3 groupes de 2
Qu'est-ce que ça t'inspire ?
@+
Arx Tarpeia Capitoli proxima...
Hors ligne
#3 03-07-2018 08:56:26
- yoshi
- Modo Ferox
- Inscription : 20-11-2005
- Messages : 16 947
Re : Répartir un effectif de joueur dans des groupes
Bonjour,
Pas intéressé ?
Bon, j'ai fait le taf, il n y aura donc pas d'optimisation autre du code que celle testée après publication...
Voilà la version qui a servi aux tests ci-dessus:
effectif = 105
arret=effectif//2
for a in range(3,arret):
for b in range(3,arret):
x=(b+effectif)//(b+a)
y=x-1
if a*x+b*y==effectif and x>2:
print ("%2i" % a,"groupes de","%2i" % x," et ""%2i" % b,"groupes de","%2i" % y)
Version plus optimisée (pour les nombres de groupes) :
arret=effectif//2
for a in range(3,arret):
for b in range(3,arret):
x=(b+effectif)//(b+a)
y=x-1
if a*x+b*y==effectif and x>3 and abs(a-b)<5:
print ("%2i" % a,"groupes de","%2i" % x," et ""%2i" % b,"groupes de","%2i" % y)
Résultats pour 105 :
3 groupes de 18 et 3 groupes de 17
5 groupes de 11 et 5 groupes de 10
6 groupes de 12 et 3 groupes de 11
6 groupes de 10 et 5 groupes de 9
7 groupes de 8 et 7 groupes de 7
9 groupes de 7 et 7 groupes de 6
10 groupes de 6 et 9 groupes de 5
13 groupes de 5 et 10 groupes de 4
15 groupes de 4 et 15 groupes de 3
Pour 102 :
3 groupes de 12 et 6 groupes de 11
4 groupes de 15 et 3 groupes de 14
6 groupes de 9 et 6 groupes de 8
6 groupes de 7 et 10 groupes de 6
10 groupes de 5 et 13 groupes de 4
15 groupes de 4 et 14 groupes de 3
@+
Arx Tarpeia Capitoli proxima...
Hors ligne
Pages : 1
Discussion fermée