Показать сообщение отдельно
Старый 14.08.2003, 09:56     # 89
sanchos
::VIP::
Художник-2004
 
Аватар для sanchos
 
Регистрация: 04.11.2002
Адрес: Питер
Сообщения: 1 604

sanchos Сэнсэйsanchos Сэнсэйsanchos Сэнсэйsanchos Сэнсэйsanchos Сэнсэйsanchos Сэнсэйsanchos Сэнсэйsanchos Сэнсэйsanchos Сэнсэйsanchos Сэнсэйsanchos Сэнсэйsanchos Сэнсэйsanchos Сэнсэй
Мне кажется, что проще и лучше будет сделать так:
В зависимости от постов оценивающего юзера на момент оценки, у него есть весомость этой самой оценки. Думаю, что лучше будет лучше отнести эту весомость к множежству целых чисел... т.е., к примеру:
до 50 постов весомость - 1, до 200 - 2, 400 - 3, и т.д... по принципу, по которому организован статус пользователя.
Так вот, эта весомость будет как бы равна количеству оценок. Т.е., если юзер ставит оценку, то при подсчете рейтинга это будет равно количеству оценок равному весомости, НО голос будет считаться - один.
Для быстроты и удобства хранениея, как мне кажется, лучше считать рейтинг один раз, при оценки. А не при каждом выводе рейтинга...
Значит расшифрую немного формулу maskman
весомость = S. S равна 1, 2, 3, 4 и т.д.... в зависимости от постов юзера
собственная оценка "судьи" = Rs_src.
Весомость от оценки - Rs = Rs_src / 5. (значит максимальное значение, которое может принимать - 1, минимальное - 0.2)
оценка, которую ставит "судья", = R. Значения тоже расшифровывать думаю не надо
конечный рейтинг подсчитывается по следующей формуле:
Код:
R_d = 0;
R_self = 0;
for(counter = 1; counter <= 'кол-во голосов'; counter++){
    S = 'весомость от постов';
    Rs_src = 'собственный рейтинг';
    Rs = Rs_src / 5;
    R = 'оценка, которую поставил';
    R_self += R*S*Rs;
    R_d += S*Rs;
}
R_self /= R_d;
Теперь в R_self хранится конечный рейтин
О как завернул Но, имхо, должно быть понятно
sanchos вне форума