2008-08-28 7 views
12

Sur SO 18 Joel a mentionné un algorithme qui classerait les éléments en fonction de leur âge et de leur popularité, et basé sur la gravité. Quelqu'un pourrait-il poster ceci? C# serait charmant, mais vraiment n'importe quelle langue (enfin, je ne peux pas faire LISP) serait bien.Algorithme de popularité

Répondre

10

Ma compréhension est qu'il est à peu près ceci d'un autre poste Jeff Atwood

t = (time of entry post) - (Dec 8, 2005) 
x = upvotes - downvotes 

y = {1 if x > 0, 0 if x = 0, -1 if x < 0) 
z = {1 if x < 1, otherwise x} 

log(z) + (y * t)/45000 
+2

Je n'aime pas cette solution - pourquoi avons-nous besoin de fixer une date et ont une toujours plus t? Pourquoi ne pas le changer pour que t soit l'âge, et réorganiser l'algorithme de sorte qu'un score inférieur soit meilleur. Voila, maintenant une date tirée au hasard n'a aucune influence. (Plus de principe que de nécessité, mais bon, c'est moi :)) – jTresidder

+7

Si X = 0 alors y = 0, alors z = 0, et vous obtenez log (0) :( –

+1

@Ofri Raviv - Bonne prise! - Vous avez raison , la formule Z aurait dû être inférieure à "1" pas moins de "0" Une faute de frappe qui a été là depuis environ 11 mois et vous êtes le premier à le signaler! - Merci! –