Septembre 2017
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
252627282930 

Calendrier Calendrier

Derniers sujets
» RDV Shogi à Paris intra muros - saison 2017/2018
Lun 18 Sep 2017 - 14:19 par bakashogi

» 23ème Open de Colmar
Ven 15 Sep 2017 - 8:50 par bakashogi

» Un pro est tombé sur la tête ?!
Jeu 14 Sep 2017 - 16:38 par bahamut2595

» Dodécagone entier.
Mer 13 Sep 2017 - 11:05 par bahamut2595

» Championnat de France 2017
Mar 12 Sep 2017 - 15:00 par 13nrv

» Merci, simplement merci...
Lun 11 Sep 2017 - 13:15 par bahamut2595

» Shôgi aux Grand Voisins - le 6 sept à 20h
Lun 4 Sep 2017 - 17:42 par bakashogi

» Hello world!
Mer 30 Aoû 2017 - 21:02 par Nanachou

» Sangatsu no lion sorti chez Kana: une opportunité!
Mer 30 Aoû 2017 - 20:48 par Nanachou

Rechercher
 
 

Résultats par :
 


Rechercher Recherche avancée

Flux RSS


Yahoo! 
MSN 
AOL 
Netvibes 
Bloglines 



Calcul du Elo

Page 1 sur 3 1, 2, 3  Suivant

Voir le sujet précédent Voir le sujet suivant Aller en bas

Calcul du Elo

Message  Lelorrain le Lun 16 Jan 2012 - 20:08

Ou comment devenir dingo...

Pour répondre à une demande locale (ici à Besançon) nous aurions aimé calculer des Elo... Mais je dois avouer que j'ai beau reprendre les formules du PDF officiel, rien n'y fait, je n'arrive pas à retomber sur les résultats officiels. Je m'explique. Etape 1, j'identifie tous les paramètres de la formule :
le maximum de d et de d'. Si je prends l'exemple suivant : http://www.shogi.net/fesa/index.php?mid=4&dateid=Fall+2010&tournamentid=Colmar10 je suis le joueur 13.
Mon elo au début du tournoi est de 755, donc k=36.
res = 1 quand je gagne, 0 quand je perds.
tr=755
or = le elo de mon adversaire (j'ai pris le elo de l'adversaire au début du tournoi. Doije prendre le Elo recalculé à la ronde considérée suivant les résultats ?)
d=k x (res-1/(1+10^((or-tr)/400))
d’=k x (or – tr) / 160

Et là, je me suis amusé à faire un petit tableau excel pour calculer tout ça... Ca m'a permi de trouver quelques anomalies (sauf si je n'ai rien compris).

Max(d et d') d' d k res or tr
118,125 118,125 34,32832219 36 1 1280 755
-2,1952202997 0 -2,1952202997 36 0 1230 755
-1,7276050085 0 -1,7276050085 36 0 1274 755
11,6985527625 -28,575 11,6985527625 36 1 628 755
101,475 101,475 33,5021161507 36 1 1206 755
-3,2727272727 0 -3,2727272727 36 0 1155 755
-------------------------------------------------------------------------------
224,1030001816 191,025 72,3334385223 Somme



Première surprise, lorsque l'on gagne face à qqn de moins bien classé que sois, la formule d' est négative. Ce qui se traduit par j'ai gagné donc je perds du Elo. C'est, j'imagine, la raison de l'existence de la règle de prendre le max entre d et d'. Mais si je procède comme suit, et que je calcul la somme des Max (d & d') j'arrive à 224 au lieu de 198. Du coup, j'imagine que j'ai tord dans les "tr" et "or", il ne faut pas laisser le tr fixe mais le faire évoluer à chaque ligne, et concernant les or, j’imagine que cela correspond au elo de l'adversaire au moment de sa ronde. Par exemple, pour calculer le résultat lors de la troisième ronde, il faut prendre le or et tr évolués en fonction des résultats des deux premières rondes, c'est bien ça ?

Si quelqu'un pouvait me confirmer, ce serait top. Je continuerai de chercher ce soir.

Nb : un petit soft tout rapide pour calculer tout ça serait bienvenu Very Happy je vais voir ce que je peux faire avec mes moyens elephant
avatar
Lelorrain
Général d'Or
Général d'Or

Nombre de messages : 482
Age : 33
Localisation : Nancy / Besancon
Date d'inscription : 10/04/2010

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Calcul du Elo

Message  ezano le Lun 16 Jan 2012 - 20:36

En deux mots...
Laisse tomber.

Franchement c'est relou, le pdf est tellement mal expliqué qu'on a du demander à l'auteur des explications.
Pour le soft je travail dessu, donc quand il sera prêt je le communiquerais Smile

Si tu veux pas perdre tes cheveux trop jeune laisse moi faire le boulot et épargne toi des heures de torture.
avatar
ezano
Général d'Or
Général d'Or

Nombre de messages : 242
Date d'inscription : 16/07/2008

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Calcul du Elo

Message  Kurogane le Lun 16 Jan 2012 - 21:22

ezano a écrit:Franchement c'est relou, le pdf est tellement mal expliqué qu'on a du demander à l'auteur des explications.
Pour le soft je travail dessu, donc quand il sera prêt je le communiquerais Smile

Si tu veux pas perdre tes cheveux trop jeune laisse moi faire le boulot et épargne toi des heures de torture.

Ah, si tu as des explications meilleures que celles du PDF, je suis preneur ! Moi aussi j'avais commencé à programmer un 'tit truc, mais vu que j'ai rien capté à aux explications du PDF...
avatar
Kurogane
Général d'Or
Général d'Or

Nombre de messages : 119
Localisation : Caen, FR
Date d'inscription : 04/05/2011

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Calcul du Elo

Message  nivlinch le Lun 16 Jan 2012 - 22:17

Ah, c'est beau, les petits jeunes qui essayent de faire des trucs en croyant tout trouver sur internet Laughing .

Dites-vous que vous vous attaquez à un système monté par un norvégien, qui code en Lisp, il y a environ 15 ans, et qui a été validé par des personnes dont 4 joueurs français doivent connaître l'existence. Et bien sûr, aucune trace de tout ça.
Alors, les petits rigolos, si vous pensez pouvoir y arriver sans l'aide des semi-anciens qui connaissent les ficelles, vous vous fourrez le pion dans château jusqu'au général d'or ! Twisted Evil

Plus sérieusement, ça fait plaisir de voir autant de monde chercher, mais comme dit ezano, laissez lui le temps de peaufiner son code, et une fois qu'il aura fini et tout testé, il mettra ça sur shogi.fr. C'est un gars qui aime le libre, le ezano jocolor .
avatar
nivlinch
Eisei forumeur
Eisei forumeur

Nombre de messages : 1732
Age : 30
Localisation : York, UK
Date d'inscription : 07/03/2007

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Calcul du Elo

Message  Lelorrain le Mar 17 Jan 2012 - 15:17

Hug, me revoilà.

Bon j'ai testé différentes manières. La plus proche m'amène à 932 au lieu de 953, mais il y avait une partie à handicap qui est venue perturber un peu mes calculs, donc j'imagine que ça doit pas être trop loin.

En fait, je pense qu'il faut calculer le Elo de chacun après chaque ronde, et prendre ce dernier Elo pour calculer l'évolution au tour d'après. Je me suis amusé à programmer un petit soft pour calculer la variation de Elo match par match en fonction des règles établies dans le pdf (pour ceux que ça intéresse, je posterai mon code matlab dans le post d'après). Mais mon soft ne prends pas en considération les parties à handicap, ni les joueurs bye.

Du coup, Si on prends le joueur comme exemple :

Elo initial =755 -> 873 -> 869 -> 865 -> 872 -> 940 -> 932 le résultat officiel est 953.
avatar
Lelorrain
Général d'Or
Général d'Or

Nombre de messages : 482
Age : 33
Localisation : Nancy / Besancon
Date d'inscription : 10/04/2010

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Calcul du Elo

Message  Lelorrain le Mar 17 Jan 2012 - 15:21

Code Matlab pour calcul de Elo Il n'y a qu'à copier coller dans un fichier M et l’exécuter.
%----------------------------------
% Calculateur de Elo de Shogi
% Par lelorrain
% Le 17/01/2012
%----------------------------------
clear all
close all
clc

% ----------------Fenêtre d'interface pour rentrer les données
prompt1 = {'Elo du joueur 1 :','Elo du joueur 2 :','Qui a gagné le match ? (1 ou 2) :'};
title_window1 = 'Données Joueurs';
lines = 1;
def1 = {'','',''};
answer1 = inputdlg(prompt1,title_window1,lines,def1);
assignin('base','ELO01',answer1{1});
assignin('base','ELO02',answer1{2});
assignin('base','RES',answer1{3});

Elo01=str2num(ELO01);
Elo02=str2num(ELO02);
res=str2num(RES);

if res==1
res1=1;
else
res1=0;
end

% -------------------Joueur 1
if Elo01 < 720
k1=40;
elseif 720 <= Elo01 && Elo01 < 1040
k1=36;
elseif 1040 <= Elo01 && Elo01 < 1280
k1=32;
elseif 1280 <= Elo01 && Elo01 < 1560
k1=28;
elseif 1560 <= Elo01 && Elo01 < 1920
k1=24;
elseif 1920 <= Elo01 && Elo01 < 2240
k1=20;
elseif Elo01 >= 2240
k1=16;
end

%------------- Joueur 2
if res1==1
res2=0;
elseif res1==0
res2=1;
end

if Elo02 < 720
k2=40;
elseif 720 <= Elo02 && Elo02 < 1040
k2=36;
elseif 1040 <= Elo02 && Elo02 < 1280
k2=32;
elseif 1280 <= Elo02 && Elo02 < 1560
k2=28;
elseif 1560 <= Elo02 && Elo02 < 1920
k2=24;
elseif 1920 <= Elo02 && Elo02 < 2240
k2=20;
elseif Elo02 >= 2240
k2=16;
end

% calcul du Elo du joueur 1
d1=k1*(res1-1/(1+10^((Elo02-Elo01)/400)));
d11=k1*(Elo02-Elo01)/160;

if res1==1
d111=max(d1,d11);
else
d111=d1;
end
d1111=roundn(d111,0);
Elo11=Elo01+d1111;

% calcul du Elo du joueur 2
d2=k2*(res2-1/(1+10^((Elo01-Elo02)/400)));
d12=k2*(Elo01-Elo02)/160;

if res2==1
d112=max(d2,d12);
else
d112=d2;
end
d1112=roundn(d112,0);
Elo12=Elo02+d1112;

% Affichage des Résultats
P1=[Elo01 Elo11];
P2=[Elo02 Elo12];

disp ( ' Ancien Nouveau')
disp (['Nouveau Elo du joueur 1 ', num2str(P1)])
disp (['Nouveau Elo du joueur 2 ', num2str(P2)])
avatar
Lelorrain
Général d'Or
Général d'Or

Nombre de messages : 482
Age : 33
Localisation : Nancy / Besancon
Date d'inscription : 10/04/2010

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Calcul du Elo

Message  nivlinch le Mar 17 Jan 2012 - 16:28

Ton code ne prend pas en compte le bonus de participation, non décrit dans le pdf, car le pdf est vieux, et la réforme est appliquée depuis le 01.07.2010.

Il s'agit pour les 100 premières parties, depuis cette date là, d'additionner à chaque partie un certain nombre de point (1800-ELO)/200 au joueur. Si tu veux plus de détails, je te conseille le site de la FESA, qui a la source de ce calcul en anglais.
avatar
nivlinch
Eisei forumeur
Eisei forumeur

Nombre de messages : 1732
Age : 30
Localisation : York, UK
Date d'inscription : 07/03/2007

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Calcul du Elo

Message  Lelorrain le Mar 17 Jan 2012 - 16:56

ha haaaa,

Bon, il faut que je reprenne tous mes calculs, mais dans ce cas, on s'en rapproche fortement en effet !! Very Happy

Merci pour les tuyaux !!
avatar
Lelorrain
Général d'Or
Général d'Or

Nombre de messages : 482
Age : 33
Localisation : Nancy / Besancon
Date d'inscription : 10/04/2010

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Calcul du Elo

Message  nivlinch le Mar 17 Jan 2012 - 18:19

Lelorrain a écrit:Mais mon soft ne prends pas en considération les parties à handicap, ni les joueurs bye.
Je pense que tu parles des joueurs non-classés et ceux ayant un ELO provisoire.

Pour le calcul, tu fais exactement comme tu as du : du ronde par ronde, en prenant lors du premier loop le ELO initial de l'adversaire en «tr» et le ELO initial du joueur en «or». Une fois le loop fini, tu recommences avec le ELO final des adversaires en «tr» et le ELO initial du joueur en «or». Et tu ne t'arrêtes que lorsque les ELO finals correspondent entre le loop n et le loop n+1.

Quel français finira le premier un code open source permettant de calculer les évolutions ELO ? Première étape : un calcul sans nouveau, sans handicap et sans bye !
avatar
nivlinch
Eisei forumeur
Eisei forumeur

Nombre de messages : 1732
Age : 30
Localisation : York, UK
Date d'inscription : 07/03/2007

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Calcul du Elo

Message  ezano le Mar 17 Jan 2012 - 18:43

les ELO finals

What a Face
avatar
ezano
Général d'Or
Général d'Or

Nombre de messages : 242
Date d'inscription : 16/07/2008

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Calcul du Elo

Message  nivlinch le Mar 17 Jan 2012 - 18:47

ezano a écrit:
les ELO finals

What a Face
C'est pas toi qui était censé faire ce petit soft de rien du tout que même un mec qui fait une thèse en mécanique a réussi à finir avant toi ?
avatar
nivlinch
Eisei forumeur
Eisei forumeur

Nombre de messages : 1732
Age : 30
Localisation : York, UK
Date d'inscription : 07/03/2007

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Calcul du Elo

Message  ezano le Mar 17 Jan 2012 - 19:03

Pas de ma faute si c'est mal expliqué Smile
Bref je viens de m'y remettre, je reprend tout depuis le début.
avatar
ezano
Général d'Or
Général d'Or

Nombre de messages : 242
Date d'inscription : 16/07/2008

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Calcul du Elo

Message  Lelorrain le Mer 18 Jan 2012 - 12:44

Bon, j'y suis presque. Il me reste une ou deux question auxquelles je n'ai pas forcément su répondre (nb Shogiban m'a envoyé des docs qu'il possédait sur le sujet, mais je n'ai pas encore eu le temps de les ouvrir. Si qqn les souhaite, qu'il me fasse suivre son mail en MP, je lui ferai suivre) :

- les points de bonifications, s'ajoutent-ils même si l'on perd le match ?
- pour calculer les points de bonifications avec la formule : bonus = (1800 - tr)/200, tr est bien le Elo d'avant Match ?
- si un joueur très bien classé gagen contre qqn qui a un élo trèèèès inférieur au sien, est-ce qu'il peut ne pas gagner de Elo ? Ou est-ce qu'il gagne au minimum un point ?

Pour un cas test, je vous recommande le lien suivant (pas de handicap, tous les elo son définitifs) :
http://www.shogi.net/fesa/index.php?mid=4&dateid=Spring+2011&tournamentid=Minsk+shogi+club%27s+tournament
avatar
Lelorrain
Général d'Or
Général d'Or

Nombre de messages : 482
Age : 33
Localisation : Nancy / Besancon
Date d'inscription : 10/04/2010

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Calcul du Elo

Message  nivlinch le Mer 18 Jan 2012 - 13:03

Lelorrain a écrit:- les points de bonifications, s'ajoutent-ils même si l'on perd le match ?
- pour calculer les points de bonifications avec la formule : bonus = (1800 - tr)/200, tr est bien le Elo d'avant Match ?
- si un joueur très bien classé gagen contre qqn qui a un élo trèèèès inférieur au sien, est-ce qu'il peut ne pas gagner de Elo ? Ou est-ce qu'il gagne au minimum un point ?
Oui / Oui / Oui.

Si tu as d'autres questions, n'hésites pas. J'ai compris le système avec le handicap, et peux t'envoyer ça par mail Smile .
avatar
nivlinch
Eisei forumeur
Eisei forumeur

Nombre de messages : 1732
Age : 30
Localisation : York, UK
Date d'inscription : 07/03/2007

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Calcul du Elo

Message  Lelorrain le Mer 18 Jan 2012 - 13:07

Juste pour le 3eme point, c'est : ne gagne pas de Point ou gagne quand même un point ?
je valide et te redis pour la suite Wink
avatar
Lelorrain
Général d'Or
Général d'Or

Nombre de messages : 482
Age : 33
Localisation : Nancy / Besancon
Date d'inscription : 10/04/2010

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Calcul du Elo

Message  nivlinch le Mer 18 Jan 2012 - 13:40

Lelorrain a écrit:Juste pour le 3eme point, c'est : ne gagne pas de Point ou gagne quand même un point ?
je valide et te redis pour la suite Wink
Ne gagne pas de point.
avatar
nivlinch
Eisei forumeur
Eisei forumeur

Nombre de messages : 1732
Age : 30
Localisation : York, UK
Date d'inscription : 07/03/2007

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Calcul du Elo

Message  Lelorrain le Mer 18 Jan 2012 - 15:01

D'après le point 8 de la page de la fesa sur le calcul du Elo :
When rating an established player the formula in (1) is used where tr is the players rating updated with the results so far in the tournament and or is the opponents post-event rating.

Il me semble comprendre que le tr évolue après match joués, mais que le or reste le Elo d'avant tournoi de l'adversaire. Quelqu'un peut-il me confirmer la chose ? Parce qu'en essayant les deux méthodes, je n'arrive quand même pas au résultat exacte... cf ci après :

Cas 1: je fais évoluer tr et or après chaque match
Cas 2: je ne fais pas évoluer or
Cas 3: le résultat référence

[/tr][tr]
Cas 1 Cas 2 Résultat officiel
3 3 6
53 51 49
25 24 25
29 29 30
74 70 69
-18 -19 -12
-5 -5 -3
77 82 74
22 20 26
-43 -42-43

des suggestions ?
avatar
Lelorrain
Général d'Or
Général d'Or

Nombre de messages : 482
Age : 33
Localisation : Nancy / Besancon
Date d'inscription : 10/04/2010

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Calcul du Elo

Message  nivlinch le Mer 18 Jan 2012 - 15:48

Rah, le serpent qui se mord la queue…

Pour faire simple (c'est impossible), or n'évolue pas à l'intérieur d'un même loop, mais tr évolue après chaque match à l'intérieur d'un même loop.

Exemple concret : A B C D joue ensemble deux rondes (AB puis AC). Tu calcules le tr de A avec les or de B, C et D (leur ELO de base), le tr de B avec les or de A, C et D, idem pour C et D.
Tu recalcules le tr de A, mais cette fois ci, avec les nouveaux or de B, C et D (les tr que tu viens de calculer avant). Idem pour B, C et D.
Et tu n'arrêtes le calcul que lorsque que le tr calculé de A au sein d'un loop correspond au or de A que tu as utilisé pour calculer le tr de B, C et D.

Est-ce plus clair ? C'est du calcul itératif, et à force de l'expliquer, j'ai l'impression que moi aussi, je pourrais m'amuser à calculer tout ça…
avatar
nivlinch
Eisei forumeur
Eisei forumeur

Nombre de messages : 1732
Age : 30
Localisation : York, UK
Date d'inscription : 07/03/2007

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Calcul du Elo

Message  ezano le Mer 18 Jan 2012 - 16:00

@Lelorrain

Je t'avais prévenu Rolling Eyes
avatar
ezano
Général d'Or
Général d'Or

Nombre de messages : 242
Date d'inscription : 16/07/2008

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Calcul du Elo

Message  Lelorrain le Mer 18 Jan 2012 - 16:22

haaaaa alors effectivement, il manque qqch sur le site pour exprimer la valeur de or !!

Parce que si on s'en tiens à ce qui est écrit :

The basic formula when updating the rating values for a person is:
d = k * (res - 1/(1+10^((or - tr)/400))) where
d is the change (rounded to the nearest integer)
k is a coefficient
res is the result (1 for victory, 0 for defeat, ½ for draw)
or is the rating for the opponent, except that if it is less than 400 then 400 is used instead
tr is the target rating (the rating for the player that is updated)

...

Donc, moi pas comprendre... qqn peut-il me faire un schéma ? ben voui, je suis visuel moi... Si j'essaye de reprendre l'exemple ABCD :

ronde 1 : A vs B et C vs D
ronde 2 : A vs C et B vs D

d = k * (res - 1/(1+10^((or - tr)/400))) (on laisse d' de côté pour le moment) donc dA=k*(res-1/(1+10^((EloInitB-EloInitA)/400))) Je ne vois pas pourquoi refaire ce calcul avec le EloInit de C et D alors que A ne les rencontre pas...
avatar
Lelorrain
Général d'Or
Général d'Or

Nombre de messages : 482
Age : 33
Localisation : Nancy / Besancon
Date d'inscription : 10/04/2010

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Calcul du Elo

Message  Lelorrain le Mer 18 Jan 2012 - 16:25

par ezano le Mer 18 Jan 2012 - 16:00
@Lelorrain

Je t'avais prévenu Rolling Eyes

Bah, il ne reste pas grand chose à effectuer Smile Ca donne un bon indicateur, mais je préférerai avoir le résultat juste Smile j'ai une erreur comprise entre 0 et 5 pts Elo dans mes derniers calculs... Tu arrives à une erreur de combien toi ?
avatar
Lelorrain
Général d'Or
Général d'Or

Nombre de messages : 482
Age : 33
Localisation : Nancy / Besancon
Date d'inscription : 10/04/2010

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Calcul du Elo

Message  Lelorrain le Mer 18 Jan 2012 - 16:29

Pour info, certaines erreurs ont pu être minimisées en ne réalisant l'arrondi que sur la valeur finale du Elo obtenue, et non en réalisant l'arrondi à chaque itération.
avatar
Lelorrain
Général d'Or
Général d'Or

Nombre de messages : 482
Age : 33
Localisation : Nancy / Besancon
Date d'inscription : 10/04/2010

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Calcul du Elo

Message  ezano le Mer 18 Jan 2012 - 16:39

Je travaille sur la prise en charge des grilles américaines dans mon programmes avant d’entamer la partie calcul.
En gros l'idée c'est d'avoir un truc équivalent au programme d'Oluf que la fédé fr pourra utiliser et ainsi se démarquer.

En gros la on est dépendant d'une seule et unique personne pour calculer les résultats de tournoi. Mon but est de changer ça tout en respectant les normes qui était en vigueurs avec l'ancien programme pour pas chambouler les vieux gouroux.

Edit:
Donc premier étapes: Faire un programme qui fonctionne en prenant en compte tout les cas possibles, handicape etc

Deuxième étapes: Si ça fonctionne bien et que c'est approuvé, pourquoi pas rajouter un module de mise à jour automatique des elo en bdd etc on peut imaginer plein de choses pour faire évoluer la fédé.
avatar
ezano
Général d'Or
Général d'Or

Nombre de messages : 242
Date d'inscription : 16/07/2008

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Calcul du Elo

Message  nivlinch le Mer 18 Jan 2012 - 16:46

Lelorrain a écrit:haaaaa alors effectivement, il manque qqch sur le site pour exprimer la valeur de or !!

Donc, moi pas comprendre... qqn peut-il me faire un schéma ? ben voui, je suis visuel moi...
Pas le temps, mais globalement, le tr de A, c'est le or de A pour ses adversaires (B et C, ici).

Lelorrain a écrit:Si j'essaye de reprendre l'exemple ABCD :

ronde 1 : A vs B et C vs D
ronde 2 : A vs C et B vs D

d = k * (res - 1/(1+10^((or - tr)/400))) (on laisse d' de côté pour le moment) donc dA=k*(res-1/(1+10^((EloInitB-EloInitA)/400))) Je ne vois pas pourquoi refaire ce calcul avec le EloInit de C et D alors que A ne les rencontre pas...
Oui, mais le ELO initiB est remplacé par trB de la première loop qui devient orB lors de la deuxième loop. Et ça, pour tout le monde à la fois.

Promis, ce soir, je te fais un exemple avec un schéma…
avatar
nivlinch
Eisei forumeur
Eisei forumeur

Nombre de messages : 1732
Age : 30
Localisation : York, UK
Date d'inscription : 07/03/2007

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Calcul du Elo

Message  Lelorrain le Mer 18 Jan 2012 - 16:55

Ok donc en fait, tu n'es pas encore vraiment rentré dans le code. A ta place, avant de rentrer dans le code de calcul (la lecture de grille est assez facile en matlab, alors ça n'a pas prit longtemps), je demanderai des cas test.

Personnellement, j'ai organisé mon algorithme de la manière suivante :

1) Définition de la rencontre (nombre de participants, nombre de rondes => création d'une matrice de résultats vite prête à recevoir des données)
2) Entrée des données joueurs participants à l’événement ('Nom :','Prénom :','Pays :','Club :','Rang :','Elo :','Nb partie officiellement jouées :')
3) Résultats des rencontres pour chaque table
Données collectées dans la matrice (Elo des joueurs, nb de parties jouées) -> envoi vers une fonction Calcul de Elo -> Calcul -> stockage des données dans la matrice
on itère pour chaque chaque joueurs, ronde par ronde et hop, c'est joué...

Je mes plus en détail ma fonction "calcul de Elo" :
% Function Elo FElo
function [Elo111]=FElo(ELO01,NBG1,ELO02,NBG2,RES)

Elo01=(ELO01); % équivalent tr dans la formule
Elo02=(ELO02); % équivalent or dans la formule
res1=(RES); % résultat du match : 1 si victoire, 0 si défaite, 0.5 pour un draw
nbg1=NBG1; % Number of Game, soit le nombre de parties jouée pour déterminer si il y a besoin d'un bonus ou pas
nbg2=NBG2;

%-------- détermination du k

if Elo01 < 720
k1=40;
elseif 720 <= Elo01 && Elo01 < 1040
k1=36;
elseif 1040 <= Elo01 && Elo01 < 1280
k1=32;
elseif 1280 <= Elo01 && Elo01 < 1560
k1=28;
elseif 1560 <= Elo01 && Elo01 < 1920
k1=24;
elseif 1920 <= Elo01 && Elo01 < 2240
k1=20;
elseif Elo01 >= 2240
k1=16;
end

%---------- calcul du nouveau Elo du joueur 1
if Elo02 < 400
Elo02=400;
end

d1=k1*(res1-1/(1+10^((Elo02-Elo01)/400)));
d11=k1*(Elo02-Elo01)/160;

if res1==1
d111=max(d1,d11);
else
d111=d1;
end
%d1111=roundn(d111,0); %valeur arrondie
d1111=d111; %Valeur non arrondie

Elo11=Elo01+d1111;

if nbg1 <= 100 && Elo01 <= 1800
bonus1=(1800-Elo01)/200;
% bonus1=roundn(bonus1,0);
else
bonus1=0;
end

Elo111=Elo11+bonus1;
avatar
Lelorrain
Général d'Or
Général d'Or

Nombre de messages : 482
Age : 33
Localisation : Nancy / Besancon
Date d'inscription : 10/04/2010

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Calcul du Elo

Message  Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Page 1 sur 3 1, 2, 3  Suivant

Voir le sujet précédent Voir le sujet suivant Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum