Щиталка, подсчёт среднего арифметического

  • Автор темы CDParker
  • Дата начала

CDParker

Guest
Щиталка, подсчёт среднего арифметического

Я завёл 2 столбца, среднее арифметическое (avgvotes) и кол-во голосов (numvotes) может еще какую надо, не знаю. Есть задача подсчитывать среднее арифметическое число голосов. Юзер нажимает на число от 1 до 5, и в базу должно записаться среднее арифметическое уже с этим голосом.

Как такое сделать?
 

Royal Flash

-=MaestrO=-
Математика 2....


Вообщем: кол-во голосов для твоей задачи вообще не нужно. Береш свое среднеарифмитечесское, прибавляеш введенное и делиш на 2. (4 + 1) / 2 = 2, 5 Хотя при таком подходе ты никогда не узнаеш настоящее среднее арифмитечесское :)

Вообще, нужно хранить все голоса, всех посетителей, и уже от них всех и считать каждый раз это самое среднее арифмитечесское. Т.е. нужны колонки, например в MySQL: голоса, и столько строк, сколько и голосов. Потом складываеш все голоса и делиш на их кол-во. Вот, на мой взгляд, едиинственно верный и точный подсчет среднего арифметичесского от всех голосов.
 

SelenIT

IT-лунатик :)
Эх, молодежь... :)

avgvotes = (avgvotes*numvotes + new_value)/(numvotes + 1)
numvotes = numvotes + 1
 

CDParker

Guest
Royal_Flash - все глоса это бред хранить, нада хранить кол-во голосов до этого

2SelentIT
Да я вот вчера ночью лежал думал думал а недоехал до этого.Хотя с математикой проблем никогда небыло

-~{}~ 07.03.05 00:42:

Скажыте еще такую вещь математическл-пхпшную. Как сделать так чтобы если то что после запятой среднего кол-ва голосов например 2,18 то округлялобы до 2 если больше 2,7 то до 3 а если между то до 2,5 ?
 

Royal Flash

-=MaestrO=-
Royal_Flash - все глоса это бред хранить, нада хранить кол-во голосов до этого
Ну почему бред? :) Ведь если захочеш узнать: кто за что, или за кого, или как проголосовал, хранить результат голосования пользователя тоже весьма будет не лишним :) Хотя Селент, конечно, ответил именно на поставленный тобой вопрос. Я, что-то тоже сразу до этого не дошел, хотя все так просто...
 
Сверху