Quel algorithme de tri / vote ?
Salut chers lecteurs. J'ai une question à soumettre à votre sagacité que je sais capable de surmonter les problèmes les plus retords.
Imaginons que je veuille créer un site participatif, où les internautes peuvent voter pour des contenus (disons des photos, pour l'exemple). À chaque photo, un internaute peut attribuer une note de 1 à 10.
Imaginons que je veuille également créer une page qui trie les contenus par note, avec bien entendu les photos les mieux notées qui remontent en première page.
L'algorithme trivial serait bien entendu :
note = total des notes / nombres de voteurs
Ensuite, on trie par note, et basta.
Néanmoins, cette méthode n'est valable que dans le cas où chaque photo reçoit un certain nombre de votes. Mais si une photo médiocre reçoit un seul vote avec la note maximale, elle remontera directement en tête des meilleurs contenus. De même, si une excellente photo reçoit un seul vote avec la note minimale, elle sera immédiatement enterrée.
Autre solution, chaque photo part d'emblée avec l'équivalent de X notes avec la note moyenne. Ainsi, la formule devient :
note = (total des notes + X*5) / (nombre de voteurs + X)
Cette méthode permet de pondérer l'effet des notes isolées. Toutefois, les photos ne recevant pas de votes recevront une note moyenne.
Ce problème me semble relativement courant. L'avez vous déjà rencontré ? Quelle méthode utiliseriez vous ?