Bonjour à tous,
J'aimerai créer un système d'attribution de points en fonction du classement de la personne, sachant que le premier quart du classement reçoit des points. (="personnes payées") Chaque personne paye une certaine somme pour participer (appelée S), et je possède un nombre de points à répartir fixe, égal à 90% (par exemple) du nombre total de personnes multiplié par S.
Le modèle de la fonction inverse me convient, j'attribue à chacun un nombre N égal au nombre de personnes payées divisé par le rang, histoire d'avoir la fonction sur intervalle ]0;1]. J'attribue alors à chacun son pourcentage des gains en divisant son N par la somme de tout les N.
En appliquant ensuite ce pourcentage au nombre de points total à répartir, j'obtiens le gain de chacun.
Mais le problème c'est qu'il peut arriver que les derniers payés reçoivent moins de points que la somme qu'il ont dépensé au départ.
Je voudrais donc pouvoir fixer à S le nombre de points que gagne le dernier payé. Mais comment dans ce cas arriver à répartir le même nombre de points en respectant la fonction initiale ?
Voilà j'espère que je me suis fait comprendre, je réfléchi depuis longtemps sur ce problème sans trouver de solution.
J'espère pouvoir trouver un peu d'aide ici !
Merci
Bonsoir,
je comprend ton problème comme suit :
Tu as une somme T à répartir entre n personnes numérotés de 1 à n. Disons que la personne de rang k reçoit gk points.
On doit donc avoir g1+g2+...+gn=T.
De plus on souhaite avoir gn=S.
Si j'ai bien interprété, la suite (gk) est arithmétique (c'est à dire que la différence de gain entre deux joueurs consécutifs est constante g1-g2=g2-g3=...).
Si c'est vrai en posant on a
somme des termes d'une suite arithmétique
En prenant il vient :
puis
et le gain du joueur de rang k est alors
Il faut noter que, dans les trois dernières formules j'ai écrit à la place de , gain du dernier joueur classé. En modifiant légèrement cette valeur, ainsi que celle de T, il doit être possible d'avoir des valeurs arrondies correctes, pour éviter de donner des valeurs fractionnaires aux joueurs.
En espérant t'avoir été utile.
Merci pour ta réponse.
Malheureusement la suite (gk) n'est pas arithmétique (ni géométrique d'ailleurs). Elle suit une courbe hyperbolique.
Par exemple pour 20 participants payant 30 l'inscription, voici le tableau des gains:
1. 236
2. 118
3. 79
4. 59
5. 47
La fonction actuelle est représentée par la courbe bleu (38 personnes payées). Mais je voudrais pouvoir en quelque sorte la "déformer" pour que le minimum corresponde au prix d'inscription. J'ai tracé à la main la courbe rouge qui correspond à peu près à ce que je veux, sachant que la somme des gains des personnes payées doit toujours être la même.
J'espère avoir été plus clair
Bonjour,
une possibilité serait d'enlever nS au total à redistribuer, de faire la répartition du reste suivant ta méthode, puis de donner à chacun S plus le reste. Ce qui fait que le dernier joueur classé gagne un peu plus que S.
Merci de m'avoir mis sur la voie!
Je garde la même fonction mais je soustrait 1 au résultat pour que le dernier payé obtienne le nombre 0 (et non plus 1). Je redistribue ensuite en enlevant nS au total à distribuer, puis j'ajoute S à chacun, et donc le dernier payé gagne précisément S.
Plutôt simple donc !
Merci encore
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :