2008-08-28 11 views
12

En SO 18, Joel mencionó un algoritmo que clasificaría los artículos según su edad y popularidad, y se basa en la gravedad. ¿Alguien podría publicar esto? C# sería encantador, pero realmente cualquier lenguaje (bueno, no puedo hacer LISP) estaría bien.Algoritmo de popularidad

Respuesta

10

Mi entendimiento es que es aproximadamente el siguiente mensaje de otro 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

No me gusta esta solución - ¿por qué necesitamos para fijar una fecha determinada y tienen una cada vez mayor t? ¿Por qué no cambiarlo para que t sea la edad, y reordenar el algoritmo para que una puntuación más baja sea mejor? Voila, ahora una fecha retirada al azar no tiene influencia. (Más principio que necesidad, pero oye, ese soy yo :)) – jTresidder

+7

Si X = 0 entonces y = 0, entonces z = 0, y obtienes log (0) :( –

+1

@Ofri Raviv - ¡Buena captura! - Tienes razón , la fórmula Z debería haber sido menor que "1" no menos de "0". Un error tipográfico que ha estado allí durante aproximadamente 11 meses y usted es el primero en señalarlo. - ¡Gracias! –

Cuestiones relacionadas