문제

우리가 작업 중인 프로젝트에는 SO의 시스템과 유사한 "등급" 시스템이 필요합니다.그러나 우리의 경우에는 찬성 투표로 "태그"를 지정해야 하는 여러 엔터티가 있습니다(증분과 같이 상향만 가능, 하향 없음).때로는 엔터티 유형에 관계없이 가장 높은 등급의 순서대로 모든 엔터티를 표시해야 하며 기본적으로 결과 집합을 혼합해야 합니다.유연하면서도 확장 가능하도록 구현하기 위해 어떤 데이터 구조/알고리즘을 사용합니까?

도움이 되었습니까?

해결책

Reddit의 순위 알고리즘은 흔들리기 때문에 복사하지 않더라도 살펴보는 것이 매우 합리적입니다.


항목 A가 게시된 시간과 오전 7시 46분 43초를 고려하면2005년 12월 8일 B 우리는 t에스 초 단위의 차이로:

에스 = A - B

x는 찬성 투표 수 U와 반대 투표 수 D의 차이입니다.

x = U - D

어디

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

z는 x와 1의 절대값의 최대값입니다.

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

우리는 등급을 함수 f(t로 가지고 있습니다.에스, y, z):

?(t에스, y, z) = 로그10 z + (y • t에스)/45000


라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top