2008-08-28 44 views
12

Trên SO 18 Joel đã đề cập đến một thuật toán sẽ xếp hạng các mục dựa trên độ tuổi và mức độ phổ biến của chúng và dựa trên lực hấp dẫn. Ai đó có thể đăng bài này? C# sẽ là đáng yêu, nhưng thực sự bất kỳ ngôn ngữ (tốt, tôi không thể làm LISP) sẽ được sử dụng tốt.Thuật toán phổ biến

Trả lời

10

hiểu biết của tôi là nó là xấp xỉ sau đây từ một Jeff Atwood bài

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

Tôi không thích giải pháp này - tại sao chúng ta cần phải sửa chữa một ngày nhất định và có một ngày càng phát triển t? Tại sao không thay đổi nó sao cho t là tuổi tác, và sắp xếp lại thuật toán sao cho điểm thấp hơn là tốt hơn. Thì đấy, bây giờ một số ngày kéo ngẫu nhiên không có ảnh hưởng. (Nguyên tắc nhiều hơn cần thiết, nhưng hey, đó là tôi :)) – jTresidder

+7

Nếu X = 0 thì y = 0, sau đó z = 0, và bạn nhận được log (0): ( –

+1

@Ofri Raviv - Tốt bắt! - Bạn nói đúng , công thức Z phải có ít hơn "1" không nhỏ hơn "0". Một lỗi đánh máy đã có trong khoảng 11 tháng và bạn là người đầu tiên chỉ ra nó! - Cảm ơn !! –

Các vấn đề liên quan