Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: експоненциальный ТОП

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Antonim
Отправлено: 07 Апреля, 2009 - 12:20:44
Post Id


Гость


Покинул форум
Сообщений всего: 86
Дата рег-ции: Окт. 2008  


Помог: 1 раз(а)

[+]


Необходимо выводить в топ самые популярные книжки. Выводится по 2-м критериям 1. оценка 2. кол-во скачиваний.

Думаю, что есть какая-то типа "экспоненциальной" формула которая как правило применяется в таких случаях, может кто подскажет ее? Улыбка
 
 Top
EuGen Администратор
Отправлено: 07 Апреля, 2009 - 12:23:28
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




ORDER BY


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
Stierus Супермодератор
Отправлено: 07 Апреля, 2009 - 12:25:35
Post Id



Рекордсмен по количеству сообщений за 7 дней


Покинул форум
Сообщений всего: 2132
Дата рег-ции: Дек. 2008  
Откуда: Москваль


Помог: 52 раз(а)




Ну так вы и решайте, что для вас важнее Улыбка это исключительно логика вашего приложения, спрашивать подобную формулу - всёравно, что спрашивать, какой вам логин или пароль выбрать для админского аккаунта Улыбка. Если вам пофиг всё - можете тупо сумму искать, если важнее кол-во скачиваний - домножайте скачивания на 2 и прибавляйте оценку и тд. Что вам нужно и в каком соотношении - известно только вам
(Добавление)
не, евген, у него ордер по двум полям, оба нужны - вот он и мается, какой выбрать более важным ... или не выбрать, а по обоим сразу Улыбка

(Отредактировано автором: 07 Апреля, 2009 - 12:28:45)

 
My status
 Top
zeit
Отправлено: 07 Апреля, 2009 - 17:46:29
Post Id


Частый гость


Покинул форум
Сообщений всего: 134
Дата рег-ции: Окт. 2008  


Помог: 0 раз(а)




Ну, я так понял, оценка может варьироваться в каких-то пределах, скажем от 1 до 10. А у скачиваний верхней планки нету (от 0 до x). То есть, может быть такая картина:

- книга №1, оценка 3, скачиваний 23.
- книга №3, оценка 8, скачиваний 69.
- книга №2, оценка 1, скачиваний 2.
- книга №5, оценка 10, скачиваний 145.
- книга №4, оценка 5, скачиваний 37.

По логике, та книга у которой оценка выше, та и будет более скачиваемой чем та, у которой оценка ниже. Но у книг могут быть равные оценки, или максимальные оценку (дальше двигаться некуда), тогда лучшую из них надо сравнивать по количеству скачиваний. Я так думаю. По этому, наверно нужно выводить на первые места книги у которых больше всего скачиваний. Ну на крайняк, можно оценку умноженную на какое-нибудь стационарное число (скажем 10) складывать с количеством скачиваний и по этому числу вести конкуренцию. И какую-то замысловатую формулу тут сложно придумать.

(Отредактировано автором: 07 Апреля, 2009 - 17:49:03)

 
 Top
Stierus Супермодератор
Отправлено: 07 Апреля, 2009 - 17:53:34
Post Id



Рекордсмен по количеству сообщений за 7 дней


Покинул форум
Сообщений всего: 2132
Дата рег-ции: Дек. 2008  
Откуда: Москваль


Помог: 52 раз(а)




тогда тебе и формулы не нужны :

ODER BY `оценка` DESC, `скачиваний` DESC
 
My status
 Top
Antonim
Отправлено: 07 Апреля, 2009 - 18:09:21
Post Id


Гость


Покинул форум
Сообщений всего: 86
Дата рег-ции: Окт. 2008  


Помог: 1 раз(а)

[+]


гм, не так все просто. важную роль играет в рейтинге и максимальное число голосов за одну книгу.. эта цифра тоже должна фигурировать в экспоненциальной формуле по которой долен формироваться топ. Почему экспоненциальныя - потому, что чем больше человек головало, тем меньше влияет количество голосов и теб больше среднее значение оценок и наоборот если пару чел проголосовало за одну книгу и поставили ей "5", а 100 других оченили другую на "3", то та, что на 3 должна быть выше, в то же время понятно что если 10 человек оценили на 5, а 20 другую на 3, то та ято на 5 будет выше....

И ЗАВИСИМОСТЬ ТУТ НЕ ЛИНЕЙНАЯ!

Я думал, что есть уже выработанная форума, а не типа (2+2)*2/5 Улыбка))

(Отредактировано автором: 07 Апреля, 2009 - 18:11:42)

 
 Top
zeit
Отправлено: 07 Апреля, 2009 - 20:51:39
Post Id


Частый гость


Покинул форум
Сообщений всего: 134
Дата рег-ции: Окт. 2008  


Помог: 0 раз(а)




Ну вы для начала задачу доходчиво изложите. Из чего и как складывается оценка и т.д. Исходные действия какие?..
 
 Top
Гость
Отправлено: 07 Апреля, 2009 - 21:05:20
Post Id


УДАЛЁН










zeit Господин Antonim хочет хочет сказать что здесь линейная сортировка не годиться - то есть НЕЛЬЗЯ сортировать сначала по одному а потом по другом признаку а надо учитывать их вместе
Лично мне кажется что будет достаточно f(x)=d(x)+k*q(x) где d(x) скачиваемость книги q(x) рейтинг книги а f(x) - общий рейтинг книги а значит и ее позиция в выаоде
В данном случае k можно определеить как ln(d(x))/ln(q(x)) и получим средне выровненое арспределение
А вообще надо бы открыть книжку по матстату и посомтреть там Улыбка
 
 Top
EuGen Администратор
Отправлено: 08 Апреля, 2009 - 10:22:55
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Так это же не случайный процесс, а вполне конкретные данные. А формулу какую-либо сносную придумать можно легко. Главное понять, в какой степени и что важно.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
Stierus Супермодератор
Отправлено: 08 Апреля, 2009 - 10:54:42
Post Id



Рекордсмен по количеству сообщений за 7 дней


Покинул форум
Сообщений всего: 2132
Дата рег-ции: Дек. 2008  
Откуда: Москваль


Помог: 52 раз(а)




Вобщем средние, максимальные значения вам в помощь. Кстати совет дам : если вычисления сложные будут - вам лучше ввести дополнительный столбец в базе данных со значением этого ORDER, которое будет вычисляться при каждом изменении
 
My status
 Top
Champion Супермодератор
Отправлено: 09 Апреля, 2009 - 10:11:38
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




ORDER BY (k*downloads + k2*rating)/(downloads + rating) DESC, гдеk и k2 коэффициенты важности критерия. Подбираются опытным путем. Деление для того, чтоб новая книжка, которую скачивать начали недавно и еще не накачали, но хорошо оценивают не терялась где-то внизу.

А моджет быть лучше, чтоб пользователь сам выбирал, что ему надо - по оценке или по скачиваниям?
 
 Top
Antonim
Отправлено: 16 Апреля, 2009 - 17:58:11
Post Id


Гость


Покинул форум
Сообщений всего: 86
Дата рег-ции: Окт. 2008  


Помог: 1 раз(а)

[+]


в этой формуле должно быть учтено максимальное кол-во голосов за одну книгу.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB