2008-08-29 7 views
5

우리는 현재 작업중인 프로젝트에서 "등급"시스템이 필요합니다. 그러나 우리에게는 투표 업과 함께 "태그 지정"해야하는 여러 엔티티가 있습니다 (증분과 같이 늘리거나 내려 가지 마십시오). 때때로 엔티티 유형에 관계없이 가장 높은 등급의 순서대로 모든 엔티티를 표시해야하며 기본적으로 결과 세트를 혼합해야합니다. 유연하고 확장 가능한 데이터 구조/알고리즘을 구현하기 위해 어떤 데이터 구조/알고리즘을 사용합니까? 레딧의 순위 알고리즘 바위 이후등급 구현을 어떻게 구성합니까?

답변

6

, 그것은 복사하지 않을 경우, 그것은 좀보고 매우 의미가 있습니다 :


항목이 A와 7시 46분의 시간을 게시 한 시간을 감안할 때 : 43 일 오전 2005년 12월 8일 B 우리는이 t 초에서의 차이로 :

t = A - 투표까지 U의 수의 차이로 B

및 X D 아래 표 D의 수 :

X = U - D

어디

y = 1 if x > 0 
y = 0 if x = 0 
y = -1 if x < 0 

절대 X의 값과 (1)의 최대 값 Z :

z = |x| if |x| >= 1 
z = 1 if |x| < 1 

우리는 기능으로 등급이 있습니다 ƒ (t s, y, z) :

,210

ƒ (t S, Y, Z) = 로그 10 Z + (Y •t )/45000