Calcul des points : la faille

726 Nachricht(en) normal

Zeige 321 bis 340 von 726 Einträgen
10/11/2009 14:45
#321
niconoe 3902 Nachrichten
Je crois que j'ai dit une connerie par rapport à la boucle donnée...
Je viens de relire le code et en fait, cette boucle sert à faire le classement, c'est à dire à mettre devant chaque score le 1, 2 ou 3 du 1er, 2ème ou 3ème, etc... et elle se base sur les points records déjà calculé en base O_O
Faut que je vois avec bart comment et ou sont calculé les pointsRecords, et je vous tiens au courent...
10/11/2009 14:56
#322
serialbuscontroler 980 Nachrichten

Arcade :

serial le soucis avec ton calcul c'est que le problème de wii sport n'est pas résolu.

A savoir que si le gars fait 299 au bowling au lieu de 300, il perd une quantité incroyable de points, à cause d'une petite quille.


Avec le système actuel:(exemple du bowling :159 j, 37 personnes premières)
1er=15900
38ème=175
   
avec ma formule
k^1.7 =(11977/12720)^1.7 =0.9 (k à ameliorer car pour un nombre important de joueurs, il est encore trop gros pour (23% DES joueurs premiers(159 joueurs))
Pour l'instant:
1er=13292+10
38ème=1452+10
       
Remarque:
Attention, le joueur ayant 299 (38ème) à peut être 1pt de différence avec les 37 premiers(300) mais il ne faut pas oublier qu'il s'est fait battre par 37 personnes. Il doit avoir le score d'un 38ème et non d'un 2ème.
Ce qui n'empeche pas non plus de réduire un écart trop important dans ce cas-ci
10/11/2009 20:45
#323
lapogne36 51 Nachrichten
lol limite du hs mais juste histoire de rajouter que pour faire 299 au bowling, il faut OBLIGATOIREMENT louper le tout dernier strike (le douzième) ^^, le pire c'est que j'avais fait ça avant de monter aux 300 pts...
11/11/2009 08:51
#324
Doraki 36 Nachrichten
Au fait, à chaque fois que quelqu'un poste un score sur une épreuve, il faut recalculer tous les points de tous ceux qui ont un score sur cette épreuve de toutes façons, non ?

On pourait m'expliquer pourquoi utiliser le nombre de joueurs que l'on bat strictement dans la formule des points est mauvais pour la complexité ?

Et aussi, vous voulez toujours qu'une épreuve seule puisse rapporter au(x) premier(s) un nombre arbitrairement grand de points selon le nombre de joueurs/scores différents ?
Si quelqu'un poste un nouveau score juste au-dessus du mien, je vois pas pourquoi mes points devraient augmenter avec ce changement.
11/11/2009 09:15
#325
Niouki 1042 Nachrichten
Tu gagnes plus de points si quelqu'un poste en-dessous de toi car ça veut dire que ton score est d'autant plus méritant puisque tu as battu une personne de plus smile
Le nombre de personnes en-dessous de toi est mauvais car il me semble que ça fait faire beaucoup de calculs au serveur et que c'est lourd pour lui well
11/11/2009 11:18
#326
BlackShark 5954 Nachrichten

Doraki :

On pourait m'expliquer pourquoi utiliser le nombre de joueurs que l'on bat strictement dans la formule des points est mauvais pour la complexité ?


Pour savoir combien de personnes on bat strictement on doit connaitre le nombre d'égalité à chaque rang. Du coup cela nous oblige à faire une boucle au préalable, et cela est mauvais pour la complexité. Si on pouvait faire tous les calculs avec une unique boucle ce serait mieux.

serialbuscontroler :

-->la formule de BlackShark gére bien les égalités, mais il y a le reste.Plusieurs problème apparaissent:
*ça formule donne beaucoup de pts aux derniers
ex:91/100 (avec des égalités en plus )-->700 pts
*l'écart est le même entre le 1er et le 2ème  ; le 49ème et le 50ème ou le 99ème et le 100ème.
*boucle while+le score n'est pas directement calculé


On peut toujours tenter de régler ça, avec les nouvelles formules :

- Nb de PointsRecords pour un joueur k-ème sur n : (k différent de 1)
100*(n+1-k)*(0.99)^(k-1)+10
- Nb de PointsRecords pour \"e\" égalités à la première place parmi n posts :
90*(n+1-e)*(0.99)^(e-1) + 10(n+1)

On aurait ces nouveaux résultats :

Cas avec 1 score :
1. => 110pts

Cas avec 10 scores différents

1. => 1 010pts
2. => 901pts
3. => 794pts
4. => 689pts
5. => 586pts
6. => 485pts
7. => 386pts
8. => 289pts
9. => 194 pts
10. => 101pts

Cas avec 10 scores égaux :
1. => 192pts

Cas avec 100 scores différents :
1. => 10 010pts
2. => 9 811pts
3. => 9 615pts
4. => 9 421pts
5. => 9 231pts
[...]
10. => 8 323pts
11. => 8 149pts
[...]
20. => 6 702pts
21. => 6 553pts
[...]
96. => 202pts
97. => 162pts
98. => 123pts
99. => 84pts
100. => 46pts

Cas avec 10 égalités puis 90 scores différents :
1. => 8 491pts
[...]
1. => 8 491pts
11. => 8 149pts
[...]
100. => 46pts

Cas avec 20 égalités puis 100 scores différents :
1. 7 032pts
[...]
1. 7 032pts
21. 6 553pts
[...]
100. => 46pts

Cas avec 10 égalités, puis 10 égalités, puis 10 égalités ... :
1. => 8 491pts
[...]
1. => 8 491pts
11. => 8 149pts
[...]
11. => 8 149pts
21. => 6 553pts
[...]
21. => 6 553pts
31. => 5 187pts
[...]
81. => 905pts
[...]
81. => 905pts
91. => 414pts
[...]
91. => 414pts

11/11/2009 11:34
#327
Doraki 36 Nachrichten

BlackShark :

Pour savoir combien de personnes on bat strictement on doit connaitre le nombre d'égalité à chaque rang. Du coup cela nous oblige à faire une boucle au préalable, et cela est mauvais pour la complexité. Si on pouvait faire tous les calculs avec une unique boucle ce serait mieux.

Même si ce que tu disais était vrai, calculer les points de chaque joueur en faisant deux boucles consécutives au lieu d'une seule n'est pas vraiment un problème, c'est toujours linéaire en nombre de joueurs.
11/11/2009 11:40
#328
BlackShark 5954 Nachrichten

Doraki :

Même si ce que tu disais était vrai, calculer les points de chaque joueur en faisant deux boucles consécutives au lieu d'une seule n'est pas vraiment un problème, c'est toujours linéaire en nombre de joueurs.


Non pas exactement, quand tu fais une autre boucle tu insères au moins une variable supplémentaire. Par exemple si tu fais une \"boucle for\" supplémentaire, tu as un \"i\" allant de 1 à n qui est caché (pour une boucle while tu insérerais également un \"compteur\" histoire de visiter tous les rangs). Et à chaque tour de boucle tu as le i=i+1 qui fait une opération supplémentaire. Donc pour cette opération tu le ferais deux fois répartis sur deux boucles alors que dans une seule boucle tu ne le ferais qu'une seule fois.
11/11/2009 11:45
#329
Doraki 36 Nachrichten
lol ! d'un coté tu me tiens qu'il faut économiser la moindre opération d'incrémentation,
de l'autre vous nous faites des formules avec des exponentielles et des logarithmes !

J'suis fan =D
11/11/2009 11:49
#330
BlackShark 5954 Nachrichten
Personne n'a prétendu qu'il fallait économiser la moindre opération d'incrémentation. ;) Par contre pour une formule donnée il serait inutile de rajouter des opérations supplémentaires non ?
11/11/2009 11:55
#331
Doraki 36 Nachrichten
Si la formule donnée demande de calculer le nombre d'égalités à chaque score, c'est pas des calculs en plus, c'est des calculs nécessaires, donc je comprends moins en moins ce que tu veux dire.
11/11/2009 12:35
#332
BlackShark 5954 Nachrichten
Dans nos formules il n'est pas question de calculer le nombre d'égalité et sur ce qu'on a vu jusque là on a au mieux (point de vue complexité et pour régler le soucis des égalités) trouvé des formules utilisant (dans le pire cas point de vue calcul) des puissances. Donc pour deux formules de complexité équivalente on préférera la formule qui ne demandera pas une boucle supplémentaire.

Si tu as une formule qui règle aussi bien, voir mieux, le soucis des égalités et en plus qui demande moins de calculs, tu peux toujours l'exposer. ^^
11/11/2009 12:50
#333
Doraki 36 Nachrichten
J'allais dire un truc mais j'ai mal lu ta formule.
11/11/2009 12:58
#334
BlackShark 5954 Nachrichten
Je n'ai pas répondu parce que ce n'est pas le cas :

Dernier sur un score : 110pts
Dernier sur dix scores : 101pts
Dernier sur 100 scores : 46pts

(voir page précédente)

Et si tu me réponds \"j'ai répondu ça avant ta nouvelle formule\" ce n'était pas le cas avec la formule précédente non plus :

Dernier sur un score : 100pts
Dernier sur dix scores : 96pts
Dernier sur 100 scores : 69pts
11/11/2009 13:28
#335
Doraki 36 Nachrichten
Alors si je me trompe pas, que ce soit avec ta formule ou ton pseudo code d'il y a quelque pages, on a un truc comme :

4 égalités + un 5ème/5 :
1. 234
1. 234
1. 234
1. 234
5. 106

Tout d'un coup quelqu'un bat le record :
1. 610
2. 505
2. 505
2. 505
2. 505
6. 105

Ô joie pour les seconds !
11/11/2009 13:56
#336
Arcade 1789 Nachrichten
ha ouai si c'est vrai, t'as raison c'est pas logique.
11/11/2009 14:44
#337
BlackShark 5954 Nachrichten
Ma formule, ma calculatrice qui fonctionne étrangement et mon pseudo code ne finissent plus de s'améliorer grâce à tes remarques constructives Doraki.

Pour ton soucis on pourrait régler avec ceci :

Nb de PointsRecords pour \"e\" égalités à la k-ème place parmi n posts :
10*(n+1-k)*(0.99)^(k-1)+ 90*(n+2-k-e)*(0.99)^(k+e-2) + 10

Ton 1er cas :
1. => 234
1. => 234
1. => 234
1. => 234
5. => 106

Ton 2ème cas :
1. => 610
2. => 232
2. => 232
2. => 232
2. => 232
6. => 105
11/11/2009 15:05
#338
Arcade 1789 Nachrichten
parfait ca^^
11/11/2009 17:02
#339
Doraki 36 Nachrichten
Mwahaha je t'ai fait utiliser le nombre p de personnes qu'on bat strictement (n+2-k-e),
et le nombre m de personnes qui nous battent strictement (k-1)

soit 10*(n-m)*(0.99)^m + 90*(p+1)*(0.99)^(n-p-1) + 10.

Alors pour la suite du débat,

Si il y a 10*x joueurs qui sont tous ex aequo pour la 1ère place, donc sur une épreuve absolument trop facile, ils gagnent à peu près autant de points que quelqu'un qui est 1er strict sur x joueurs.

Aussi, l'idée que plus une épreuve a des joueurs, plus on peut potentiellement gagner de points, fait que pour des scores moyens, on a beaucoup plus intérêt à les poster sur des jeux où déjà plein de monde joue que sur des jeux ou personne ne joue.
Donc il y a un cercle vicieux qui fait que ceux qui cherchent des points vont sur les jeux populaires et délaissent les jeux qui ont besoin de joueurs.
Sur cyberscores, on ne ne peut pas avoir plus de 100 points sur une épreuve, ce qui réduit ce phénomène de plus une épreuve est populaire, plus elle devient encore plus populaire.

Je repropose un truc genre : 1+999*(p+1)/(n+m+9), qui a les bonnes propriétés :

Un joueur seul sur une épreuve marque 100 points.
Plus on me bat, moins mon score est bon.
Plus je bats des gens, plus mon score est bon.
Si je monte dans le classement, mon score augmente.
Si je descends dans le classement, mon score diminue.
Ce qui se passe ailleurs dans le classement ne modifie pas mon score (cf la mauvaise idée d'utiliser le nombre de scores différents globalement)

(comme la formule de black_shark si je ne m'abuse)
Mais avec en plus :

On ne peut jamais avoir plus de 1000 points.
Si quelqu'un égalise mon score, mon score diminue.
Un score où tout le monde est 1er ex aequo vaut de moins en moins de point, parceque bon ça veut dire que c'est facile quoi.

Les écarts de points sont environ deux fois plus importants entre les joueurs bien placés qu'entre les joueurs mal placés. (on peut un peu bidouiller là dessus au besoin)

Prendre 1+999*(p+1)²/(n+m+9)/n accentue beaucoup cette différence, mais pénalise encore plus les scores avec plein de 1ers ex aequos
11/11/2009 17:08
#340
Arcade 1789 Nachrichten
Ouai mais du coup, un score moyen ne rapporterais plus assez de points pour donner envie de le poster, donc il y aurai beaucoup moins de scores sur le site.
Zeige 321 bis 340 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