Малко математическо изчисление

NewGuy

Registered
Здравейте. Имам система за гласуване от 1 до 10. Въпроса ми е как математически да изчисля колко е средният рейтинг? Може и без примерен код само на теория.
 
Събираш ги и делиш на номера на гласовете. :) Това е средно аритметично, както смятат по-често оценките в училище.

Пример:

Потр1 гласува: 5;
Потр2 гласува: 10;
Потр3 гласува: 4;

Краен резултат (Потр1+Потр2+Потр3) / 3 (тъй като толкова са гласовете) = 6,333 (как го улучих в период :idea:)

Мисля, че за това питаш :)
 
ако имаш едно поле rating записваш в него оценката на 1-вия гласувал напр. (5) и всяка следваща оценка събираш с тази и делиш на 2 и записваш в същото поле пр:

1ви гласувал -> 5
2ри гласувал -> 4 => (5 + 4) / 2 => записваш 4.5
3ти гласувал -> 4 => (4.5 + 4) /2 => записваш 4.25
и т.н.
 
legolas каза:
ако имаш едно поле rating записваш в него оценката на 1-вия гласувал напр. (5) и всяка следваща оценка събираш с тази и делиш на 2 и записваш в същото поле пр:

1ви гласувал -> 5
2ри гласувал -> 4 => (5 + 4) / 2 => записваш 4.5
3ти гласувал -> 4 => (4.5 + 4) /2 => записваш 4.25
и т.н.

И накрая получаваш нереални резултати...

1 -> 5
2 -> 5 => 10 / 2 = 5
3 -> 5 => 10 / 2 = 5
4 -> 3 => 8 / 2 = 4
Видя ли грешката? Твоя метод получава 4 а реално средното е: (5+5+5+3) / 4 = 18 / 4 = 4.5
 
да получаваш грешка защото го разглеждаш като интервал от време с всички оценки, а аз като текуща и нова оценка /2 = нова оценка.

ако имаш едно поле rating

както казах това е за едно поле, другия вариянт е да имаш нова таблица RATINGS и в нея да записваш оценките на всички потрб. и с всяка нова оценка, извличаш всички стари оценки и делиш на броя.
 
legolas каза:
да получаваш грешка защото го разглеждаш като интервал от време с всички оценки, а аз като текуща и нова оценка /2 = нова оценка.

Точно де сметни си го и ще видиш, че се получава грешка ако има еднакви оценки една след друга.
 

Back
Горе