2008-08-29 36 views
5

Üzerinde çalıştığımız bir projede SO'ya benzer bir "derecelendirme" sistemine ihtiyacımız var. Bununla birlikte bizimkilerde, bir oylama ile "etiketlenmeye" ihtiyaç duyulan çok sayıda varlık var (sadece bir artış, asla bir artış gibi). Bazen, varlık türüne bakılmaksızın, sonuç kümelerini temel alarak, en yüksek puan verilen sıraya göre tüm varlıkları göstermemiz gerekecek. Bunu uygulamak için hangi veri yapıları/algoritmaları kullanıyorsunuz, bu esnek ve ölçeklenebilir mi? reddit sıralamasını algoritma kayaların yanaBir derecelendirme uygulaması nasıl oluşturulur?

cevap

6

, onu kopyalamak yok eğer, ona bir göz olması çok mantıklı:


giriş A ve 7:46 zamanını gönderilmiş süre göz önüne alındığında: 43 pm 8 Aralık 2005 B Elimizdeki t s saniye cinsinden fark olarak:

t s = A - oy kadar, U, bir sayısı arasındaki fark olarak B

ve x, d aşağı oy D sayısı:

X = U - D

nerede

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

ve mutlak x değeri ve 1 maksimal değer olarak z:

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

, derecelendirme ƒ (t s, y, z) olarak derecelendirilmiştir:

.210

ƒ (t s, y, z) = log z + (y • t s)/45000


İlgili konular