2010-11-08 3 views
2

Я ищу информацию о том, какой алгоритм голосования будет лучше для меня. У меня есть базовая система голосования «Вверх/Вниз», где пользователь может только проголосовать за продукт вверх или вниз. Я бы хотел, чтобы он был взвешен так, чтобы продукт, который был год, не будет придерживаться тех же стандартов, что и новый.Алгоритм взвешенного голосования

Я думаю, что нужно сделать алгоритм, который забирает количество голосов за каждый товар за последние 30 дней. Однако это создает обратную сторону. Я не хочу, чтобы голоса старше 30 дней становились бессмысленными, но, возможно, не были взвешены так же, как более новые. Тогда, возможно, голоса после 90 дней даже взвешены меньше, чем те, которые старше 30 дней.

Кто-нибудь знает об алгоритме, который делает это уже и тем более, может быть легко рассчитан в PHP?

ответ

3

Google App Engine имеет приятный example, который имеет дело с голосами, которые «распадаются» с течением времени.

Это на Python, но оно должно соответствовать вашим потребностям.

0

Я думаю, что, учитывая простоту вашего требования, лучший способ действий - написать это самостоятельно.

Не зная больше, я думаю, что ваша задача будет заключаться в том, будет ли вы сохранять эти данные в своей базе данных в предварительно взвешенном формате (например, «когда голос будет подан, дайте ему $ this_year + 1 балл»), независимо от того, рассчитать взвешивание в вашем запросе db (например, порядок по счету, который учитывает как upvotes, так и дату голосования), или верните все необходимые данные и выведите вес в PHP. Выбор зависит от того, что ваше приложение должно делать точно и сколько данных будет.

 Смежные вопросы

  • Нет связанных вопросов^_^