Calcul des points : la faille

726 Nachricht(en) normal

Zeige 141 bis 160 von 726 Einträgen
23/10/2009 15:33
#141
serialbuscontroler 980 Nachrichten
Voici un topic qui marche (15 pages à la suite) !
J'approuve l'idée d'Arcade.
Pour les formules, celle d'Arcade est bien(et quasi-parfaite avec la modification suggérée par Gizmoon (fin de la p5)), celle de niconoe est mauvaise (désolé nico) et celle de lapogne encore plus.
     
 
Formule proposée par niconoe :
Soit f la fonction calculant le nombre de pointsRecord pour un membre donné sur un record donné
Soient n le nombre de joueurs sur un record, i la position d'un membre et e le nombre de personne ayant le même rang i que le membre donné,

On a : f(n,i,e) = (n-i+1)²-(e*(n-i+1))


A première vue, la formule me semblait parfaite et minimisait les points facilement gagnés par les égalités mais en fait ce n’est pas le cas. Pire, le  problème avec cette formule c’est que cela amplifie encore plus les différences.
Exemple appliqué (pour que tous les membres non matheux comprennent aisément où je veux en venir) :
Prenons le cas avec un joueur A qui est premier(tout seul) sur 5 àil gagne 500pts
Et un joueur B qui est 1er (avec39 autres)sur 50 --> il gagne 5000pts
Soit 10 fois plus.
     
Avec le nouveau système :
Le joueur A gagne à 25 pts
Le joueur B gagne -> 500 pts
Soit 20 fois plus
     
Résultats :
Au lieu de réduire le rapport, la formule l’a augmentée de 2
.(et encore cet exemple(pris de façon totalement aléatoire) n’est pas le pire)

       
23/10/2009 16:15
#142
niconoe 3902 Nachrichten
lapogne, ta courbe est inversement exponentielle ce qui n'est pas très bon pour un classement.

Serial : je suis pour creuser les écarts dans les classements ponctuels mais les diminuer dans le classement général, donc ma formule, dans ce contexte, n'a pas le défaut que tu prétends (mais en a d'autres...)
Ainsi, je trouve normal que l'écart qu'on trouve entre le 1er seul de 5 d'un classement à 5 et le 1er ex-aequo de 38 sur 50 soit plus gros qu'avec le classement actuel. C'est justement ce qui pousse à la compétition. Quand tu vois que tu peux gagner 20 fois tes points en maxant un score, ça te pousse plus à la compétition que 10 fois !



En réalité, j'ai en théorie, une fonction \"parfaite\"
la voici :
http://img12.imageshack.us/img12/7339/sanstitreig.jpg"

il s'agit bien sur de la courbe bleue.
La courbe rouge serait \"un indicateur\".
Pour les non-matheux, j'explique : plus on va vers la droite, plus la bleue se rapproche de la rouge rapidement MAIS SANS JAMAIS LA TOUCHER !!!
Une fois qu'on a trouvé la fonction bleue, il suffit de faire varier l'inclinaison de la rouge pour voir croitre plus ou moins rapidement la bleue.
On trouve enfin un équilibre pour chaque points de vue en stabilisant la rouge, ce qui nous donne une bleue \"idéale\".

On retranscrit la fonction, et c'est nickel !!

Le gros problème c'est que mon niveau en math est très largement insuffisant pour trouver une bleue EN FONCTION de la rouge. Celle que j'ai proposé était de ce type mais indéniablement en x², donc la croissance d'une telle fonction n'était pas \"réglable\"
23/10/2009 16:36
#143
serialbuscontroler 980 Nachrichten

niconoe :

lapogne, ta courbe est inversement exponentielle ce qui n'est pas très bon pour un classement.

Serial : je suis pour creuser les écarts dans les classements ponctuels mais les diminuer dans le classement général, donc ma formule, dans ce contexte, n'a pas le défaut que tu prétends (mais en a d'autres...)
Ainsi, je trouve normal que l'écart qu'on trouve entre le 1er seul de 5 d'un classement à 5 et le 1er ex-aequo de 38 sur 50 soit plus gros qu'avec le classement actuel. C'est justement ce qui pousse à la compétition. Quand tu vois que tu peux gagner 20 fois tes points en maxant un score, ça te pousse plus à la compétition que 10 fois !


J'ai vu que tu as voulu creuser les écarts en utilisant la fonction carré (1 joueur tout seul=1 pts) et un joueur 1er sur 10 gagne 90 pts.
   
Bien évidemment, lorsqu'il y a des égalités, les points sont largement diminués par rapport à un joueur qui serait seul en tête face à 49 autres joueurs.
Le problème, c'est tu utilises le carré et que cela s'accroît un peu trop vite.
         
Pour moi(après tout le monde ne sera pas d'accord),
-un record avec 50 records et 40 joueurs égalités doit valoir environ autant qu'une première place seule contre 9 joueurs
Avec ton système, on a (en reprennant l'égalité totalement suggérée):
550=100 (avec l'ancien système toujours en place, : 5000=1000)
-->donc je suis contre l'utilisation d'exponentielle ou de carré s'ils ne sont pas utilisés à bon escient.

   
EDIT: PROPOSITION:
Reprendre l'ancienne formule qui est plus ou moins:
Soit n le nombre de posts et i la position du membre (compris entre 1 et n inclus), et f la fonction utilisée

f(i) = 100n x ((0.8+(k/100))^(i-1)) où k<100 et k=E((i-2)/2) où E(y) = la partie entière de y

Et remplacer \"n\" par \"e= nb de joueurs que l'on bat\"
(en fait c'est que Gizmoon a suggéré implicitement)
f(i) = 100e x ((0.8+(k/100))^(i-1))
23/10/2009 16:55
#144
lapogne36 51 Nachrichten
alala j'en perds mon latin avec toutes ces formules...
faudrait qu'on m'explique plus précisément les points importants que cette fonction doit résoudre (problème de scores max faciles, à quoi doit ressembler un écart entre 1er et 2ème, entre 1er et milieu de tableau, etc...)

en tout cas on m'enlèvera pas de la tête (ou difficilement ^^) l'idée que la fonction doit être de la forme x(i)= b*100(p+1), avec p le nombre de records distincts du 1er et b un coefficient dépendant de la place du joueur, et qui doit tendre vers une valeur proche de 1 lorsque le joueur en question tend vers la première place (mais ensuite la question : à quel rapport de points doit ressembler le score du 1er par rapport au score du dernier ? faire tendre b vers 0 ou vers une autre valeur ?)
23/10/2009 16:56
#145
niconoe 3902 Nachrichten
sérial, ta proposition ne tient pas debout face aux égalités

tu prends un classement avec 39 premiers, un 40ème et un 41ème.
tu va avoir,
pour les 1ers : 100 * 2 * ((0.8)^0)) = 200 points
pour le 40ème : 100 * 1 * ((0.8+0.19)^39) = 167 points
pour le dernier : 100 * 1 * ((0.8+0.2)^40) = 100 points

Ecart entre 40 et 41 = 67.
Ecart entre 1 et 40 = 33
O_O

Regarde ma fonction dessinée, elle représente parfaitement ce qu'il faut.
23/10/2009 16:57
#146
BlackShark 5954 Nachrichten

niconoe :

Le gros problème c'est que mon niveau en math est très largement insuffisant pour trouver une bleue EN FONCTION de la rouge. Celle que j'ai proposé était de ce type mais indéniablement en x², donc la croissance d'une telle fonction n'était pas \"réglable\"


Une petite piste qui pourrait t'aider serait la fonction gaussienne. Cette fonction correspondrait à l'écart entre la bleue et la fonction rouge (d'ailleurs tu ne voulais pas dire y=ax ? car elle passe par l'origine. :p) si tu t'amuses à tourner efficacement ton image. lol

On aurait f(x)- (ax) = - fonction gaussienne.
(autrement dit f(x) = ax - fonction gaussienne)

Donc tu aurais bien la limite de (f(x) - ax) qui tend vers 0 lorsque x tend vers l'infini (0- pour être précis). Sinon évidemment il faut faire quelques réglages car vu l'allure de ta courbe tu ne souhaites pas que le maximum d'écart entre les deux courbes se fassent en 0. Si tu souhaites qu'elle se fasse pour 50 joueurs : choisis l'espérance = 50, si tu souhaites pour 20 joueurs : choisis l'espérance = 20 etc.
Autre réglage sur l'allure de la fonction gaussienne, il faudrait l'aplatir de telle sorte qu'elle corresponde à ton dessin (et aussi de telle sorte que la fonction n'atteigne pas des valeurs négatives pour un x donné aww) c'est à dire qu'il faudrait trouvé un écart type (ou une variance) adéquat(e).

Vu que j'ai un concours blanc demain je n'ai pas le temps de te donner un exemple illustratif mais j'espère avoir pu te donner une piste qui pourrait t'intéresser. smile
23/10/2009 17:04
#147
serialbuscontroler 980 Nachrichten

niconoe :

sérial, ta proposition ne tient pas debout face aux égalités

tu prends un classement avec 39 premiers, un 40ème et un 41ème.
tu va avoir,
pour les 1ers : 100 * 2 * ((0.8)^0)) = 200 points
pour le 40ème : 100 * 1 * ((0.8+0.19)^39) = 167 points
pour le dernier : 100 * 1 * ((0.8+0.2)^40) = 100 points

Ecart entre 40 et 41 = 67.
Ecart entre 1 et 40 = 33
O_O

Regarde ma fonction dessinée, elle représente parfaitement ce qu'il faut.


   
-->c'est vrai que l'écart entre le 1 et 40 est plus petit quel'écart entre le 40 et 41, mais cela colle plus avec la réalité. La formule que je viens de donnée comporte une erreur en plus car le dernier gagne 0 pt (car il ne bat personne)
-->BlackShark: bonne idée d'utiliser Gauss, par contre je suis assez occupé en général (mais si je trouve une formule correcte, je l'envoie)
23/10/2009 17:15
#148
niconoe 3902 Nachrichten
Je voulais bien dire ax + b
Sur l'image j'ai pris b = 0 mais b doit faire partie des variables afin de \"régler\" f(x) :)

je pense que d'avoir un FWHM variable en fonction du nombre de posts rendrait la fonction bleue quasi parfaite

La black, tu dépasses mes compétences mais je comprends la piste que tu exploite et je trouve que c'est une excellente idée. Je te passe le flambeau !
23/10/2009 18:37
#149
lapogne36 51 Nachrichten
après quelques discutions avec niconoe sur msn cette fonction a l'air d'être pas mal pour calculer les points :
soit n le nombre total de joueurs sur le record
soit p le nombre de joueurs avec un score inférieur au premier
soit i la place du joueur en question
soit x(i) la fonction du nombre de points gagnés par i

alors x(i)= 100*(p+1)*g(i)

avec g(i)= [exp(a*i)]/[exp(a)]

avec a= (-1/3,1)/(racine(n)

comme ça la fonction parait incompréhensible, mais ça fait bien décroitre la fonction comme il faut (c'est à dire f(1)-f(2)>f(2)-f(3)> etc...)
le \"100*(p+1)\" règle le problème des scores max faciles, moins de gens ont un score différent du meilleur score, moins le score du 1er sera important

on remarquera qu'on peut simplifier g en g(i)= exp(a*(i-1))

j'ai fait différents tests (1, 4, 9, 16, ..., 100 joueurs pour être exact) et ça avait l'air de bien marcher

bien sûr cela va de soit le nombre de points marqué est la partie entière de x(i)

n'hésitez pas à donner vos avis, bons ou mauvais
23/10/2009 20:26
#150
Lucario 4060 Nachrichten
Ça a l'air compliqué votre affaire, j'y comprends rien du tout.

Une forme exponentielle, ça s'accroît tout le temps sans jamais toucher aux asymptotes, le mot est peut-être mal orthographier puisque je me souviens plus pas coeur de la forme exponentielle.

L'inversement proportionnel, c'est une inverse d'une exponentielle, mais celui ci ne touchera jamais aux axes x et y.

Ça reveint un peu à ce que niconoe nous a expliqué peu avant.


Je comprends rien à ce qui est dit. ouch!



23/10/2009 22:48
#151
serialbuscontroler 980 Nachrichten
(Je ne suis pas là la semaine prochaine donc je ne pourrais pas commenter les éventuelles bonnes ou mauvaises réactions)
             
J'ai sûrement la formule qu'il vous faut(l'échelle me convient en tous cas)
je n'ai pas essayé à des rangs très élévés(vers 50-100 joueurs, je n'ai pas Excel sous la main)
La formule n'utilise pas Gauss, ni d'asymptote oblique,ni de suite :
Soit
P=place du joueur
N=nombre de personnes que l'on bat
E-->la partie entière
f(N,P)=100*(N+1)*0,9^((P-1)/2)
Puis on prend la partie entière: E(f)

           
Avantages:
-formule simple
-seulement 2 variables
-les scores max sont réduits
-plus l'on descent dans le classement, plus les écarts entre les joueurs s'amenuisent
-les personnes en haut du classement sont d'avantage récompensés
-la formule privilégie le nb de joueurs présent sur un record
-elle ne necessite pas de calculs en chaîne (comme les suites géométrique); comme l'obligait la version actuelle (pas de dépendance).
       
Pour 1 joueur
1er=100 pts
     
Pour 3 joueurs
1er=300 pts
2ème=189 pts
3ème=90 pts
     
Pour 5 joueurs:
1=500
2=379
3=270
4=170
5=81
     
Pour 10 joueurs
1/1000
2/853
3/720
4/598
5/486
6/384
7/291
8/207
9/131
10/62

Pour 10 joueurs dont les 5 premiers sont ex-aequo
1/600
2/600
3/600
4/600
5/600
6/pareil précdent(384)
etc
     
Pour 56 joueurs dont les 36 premiers sont ex-aequo
1/2100
...
37/300
38/270
39/243
40/217
41/194
...
55/11
56/5
23/10/2009 23:10
#152
Lucario 4060 Nachrichten
Je trouves que c'est moins complexe comme ça. C'est très bien expliqué. Sauf que ça ressemble drôlement à ce qu'on voit sur le site.
23/10/2009 23:17
#153
Big Boss 800 Nachrichten
English version of this topic.
24/10/2009 01:20
#154
lapogne36 51 Nachrichten
hum voilà pour se donner un ordre d'idée le nombre de points obtenus sur une base de 100 joueurs avec des scores distincts

formule de serial :

1er : 10000
2ème : 9487
3ème : 9000
4ème : 8538
5ème : 8100

14ème : 5042

50ème : 757

100ème : 54

formule de lapogne :

1er : 10000
2ème : 9685
3ème : 9380
4ème : 9085
5ème : 8799

23ème : 4946

50ème : 2085

100ème : 421



les deux formules dans le principe se ressemblent (de la forme 100(P+1)*qqchose), seulement l'une creuse un écart plus importante que l'autre

là c'est même plus une question de formule mais une question de joueurs : quelle méthode préfèreraient-ils ? celle ou obtenir un bon nombre de points nécessite obligatoirement une \"très bonne\" place (à peu près le système en place actuellement) ou celle où les écarts de points sont légèrement moins conséquents et permettent d'obtenir le même nombre de points avec une place \"bonne\" ?

pour trancher sur ce genre de questions ça va être aux admins de décider au final...
24/10/2009 01:27
#155
Arcade 1789 Nachrichten
lapogne, ton calcul n'est pas super dans le sens où le dernier sur 100 ne devrait pas gagner autant de points.

(le dernier sur 100 gagne plus que le premier sur 4)


Et pour celui de serial, les égalités rapportent encore de trop je trouve, et l'écart entre beaucoup de premier égalité, et le suivant est trop énorme.

Pour reprendre l'exemple de wii sports en admettant qu'il n'y ai que 56 joueurs (pour reprendre ton exemple de classement) dont 36 premiers ayant fait 300, et ensuite le 37eme ayant fait 299. Pour une quille, il se bouffe 1800 points dans la gueule.
24/10/2009 02:11
#156
niconoe 3902 Nachrichten
Sauf que pour le motiver à aller chercher ce score max et chercher la compet' jusqu'a la derniere quille, c'est bien qu'il y ai un gros écart.
Après tout est relatif...
24/10/2009 03:34
#157
Lucario 4060 Nachrichten
Ce n'est pas tout le monde qui est capable de faire la même chose que tous les autres pour avoir le maximum sur un record en particulier comme une partie parfaite de 300 pts ou un -36 au golf dans Mario golf 64.
24/10/2009 03:45
#158
niconoe 3902 Nachrichten

Lucario :

Ce n'est pas tout le monde qui est capable de faire la même chose que tous les autres pour avoir le maximum sur un record en particulier comme une partie parfaite de 300 pts ou un -36 au golf dans Mario golf 64.


D'ou l'idée de le récompenser comme il se doit :)
24/10/2009 06:40
#159
Niouki 1042 Nachrichten
Je ne vais pas vous aider mathématiquement car je ne commence qu'en ce moment les exponentielles, mais par contre, si possible, il faudrait prendre en compte une donnée.

Certains jeux présentent des scores maximums, mais qui sont difficiles, voir très difficiles à être réalisés, par exemple World of Goo, je trouve, qui demande pas mal d'entrainement si on veut faire de bons scores. Kopa a fait de nombreux gros scores (il est d'ailleurs premier sur 129/130 scores, mais dedans, il y a pas mal d'égalités, parce que petit à petit, les joueurs s'améliorent et arrivent à faire quelques scores maximums. Si le joueur perd des points en fonction du nombre d'égalités, alors Kopa va perdre pas mal de points, alors que ses scores sont très difficiles à faire!

Donc dans la majorité, les jeux qui permettent de faire des scores maximums sont des endroits où il est facile de gagner du point, mais sur World of Goo dont je parle puisque je le connait assez bien, ça peut être vraiment difficile ok

Donc comme je disais, si possible, ce serait bien de prendre en compte cette donnée ; ou alors, si vous pensez que j'ai tort, dites-le moi mais expliquez-moi svp smile
24/10/2009 07:41
#160
Trindel 2559 Nachrichten
Je crois que plus le score maximum est difficile, plus il y a des gens qui vont soumettre des scores inférieurs ce qui donnera plus de points à ceux qui ont fait les efforts.
Une formule ne pourra jamais détecter le degré d'effort qu'un membre a mis dans un records.
Dans le cas d'un score où il n'y a qu'un joueur, comment savoir si il à vraiment pousser à fond ou non?
Si on prends le cas de World of Goo, dans certains scores, il y a des scores ou le maximum était plus bas dans le passé avant que certaines techniques soit découvertes. Donc il faudrait ajuster à mesure ou les techniques avancées sont découvertes. Ce qu'il faut trouver je crois c'est une formule universelle, et non un système de micro-gestion qui donne beaucoup de travail aux admins.
Zeige 141 bis 160 von 726 Einträgen
You must be logged in to reply to this topic.
Choisir un thème

Défaut

Gaming

Nintendo

Sega

Sony

Xbox

Capcom

Bandai Namco

EA

Ubisoft

Square Enix

Licences