algoritmo di notizie di hacker in php?
Domanda
Questa è l'algoritmo di ranking Hacker News, che credo sia un modo semplice di classifica le cose, espcially se gli utenti sono votazioni sugli articoli, ma davvero dnt capire questo, questo può essere convertito in PHP, così posso capire fino in fondo ?
; 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)))))
Soluzione
Direttamente strappato dal http://amix.dk/blog/post/19574 e tradotta a PHP dal Python:
function calculate_score($votes, $item_hour_age, $gravity=1.8){
return ($votes - 1) / pow(($item_hour_age+2), $gravity);
}
Altri suggerimenti
Ci sono write-up su come funziona questo algoritmo. Una rapida ricerca ha scoperto: ranking Come Hacker News funziona l'algoritmo
.Lisp può rendere le cose sembrano più complicate di quello che realmente sono.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow