Pregunta

Este es el algoritmo de clasificación Hacker News, que creo que es una forma sencilla de clasificar las cosas, especiamente si los usuarios están votación de artículos, pero realmente dnt entender esto, puede esto ser convertido en PHP, por lo que puede comprender en su integridad ?

; Votes divided by the age in hours to the gravityth power.
; Would be interesting to scale gravity in a slider.


(= gravity* 1.8 timebase* 120 front-threshold* 1
           nourl-factor* .4 lightweight-factor* .17 gag-factor* .1)

        (def frontpage-rank (s (o scorefn realscore) (o gravity gravity*))
          (* (/ (let base (- (scorefn s) 1)
                  (if (> base 0) (expt base .8) base))
                (expt (/ (+ (item-age s) timebase*) 60) gravity))
             (if (no (in s!type 'story 'poll))  .8
                 (blank s!url)                  nourl-factor*
                 (mem 'bury s!keys)             .001
                                                (* (contro-factor s)
                                                   (if (mem 'gag s!keys)
                                                        gag-factor*
                                                       (lightweight s)
                                                        lightweight-factor*
                                                       1)))))
¿Fue útil?

Solución

http://amix.dk/blog/post/19574 y traducido a PHP desde la Python:

function calculate_score($votes, $item_hour_age, $gravity=1.8){
    return ($votes - 1) / pow(($item_hour_age+2), $gravity);
}

Otros consejos

Hay escritura-ups acerca de cómo funciona este algoritmo. Una búsqueda rápida Descubierto: Cómo Hacker News funciona el algoritmo de clasificación

.

Lisp puede hacer que las cosas parecen más complicadas de lo que realmente son.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top