Nous avons besoin d'un système de «notation» dans un projet sur lequel nous travaillons, similaire à celui de SO. Cependant, dans le nôtre, il y a plusieurs entités qui doivent être «marquées» avec un vote en haut (seulement en haut, jamais en bas, comme un incrément). Parfois nous aurons besoin de montrer toutes les entités dans l'ordre de ce qui est évalué le plus haut, indépendamment du type d'entité, mélangeant fondamentalement les ensembles de résultats, je devine. Quelles structures de données/algorithmes utilisez-vous pour l'implémenter de façon flexible et évolutive?Comment construisez-vous une implémentation de classements?
5
A
Répondre
6
Depuis des roches de l'algorithme de classement de reddit, il est très logique d'avoir un coup d'oeil, sinon le copier:
Compte tenu du temps l'entrée a été publiée A et le temps de 7h46: 43 8 Décembre h, Édition 2005 b nous avons t s comme leur différence en quelques secondes:
t s = A - B
et x comme la différence entre le nombre de votes en U un d le nombre de vers le bas votes D:
x = U - D
Où
y = 1 if x > 0
y = 0 if x = 0
y = -1 if x < 0
et z comme étant la valeur maximale de la valeur absolue de x et 1:
z = |x| if |x| >= 1
z = 1 if |x| < 1
nous avons l'évaluation en tant que fonction ƒ (t s, y, z):
ƒ (t s, y, z) = log z + (y • t s)/45000