@Valera221
Делаю сайты

Как управлять вероятностями появления поста (рейтинг, сортировка, "рекомендованное")?

Главный вопрос:
(общее кол-во лайков 266,
общее кол-во просмотров: 2199,
общее кол-во № постов 10)
ШАБЛОН
(№ поста - кол-во лайков, кол-во просмотров)
0 -20, 65
1 - 15, 200
2 - 10, 20
3 - 40, 150
4 - 35, 89
5 - 30, 100
6 - 22, 80
7 - 12, 15
8 - 50, 980
9 - 32, 500
Нужно показать 5 постов, но условие такое;
- Отбор постов должен быть случайным.
- Должно быть предпочтение на посты с большим кол-вом лайков и его соотношение с просмотрами тоже должен быть довольно велик, но в тоже время должна быть маленькая вероятность показания постов и с меньшим количеством лайков и просмотров.
Короче говоря, как сделать вероятность появления одного сайта чуть ниже, а другого чуть выше?

Дополнительный вопрос
Как создать такой алгоритм ( выборки случайных постов, но с предпочтением на больший рейтинг) на PHP?
  • Вопрос задан
  • 268 просмотров
Решения вопроса 1
hint000
@hint000
у админа три руки
1. прочитайте вот этот вопрос Как выбрать случайный элемент из списка с учётом его веса? , там Николай Панаитов дал хороший, годный ответ, и это содержит 70% ответа на ваш вопрос.
2. в качестве веса поста попробуйте:
w=c+a*Log(1+лайков[пост])+b*Log(1+просмотров[пост])

3. в этой формуле коэффициенты a>=0, b>=0, c>=0 - это "ручки регулировки" для вашего отбора. Чем больше a, тем сильнее влияние лайков, чем больше b, тем сильнее влияние просмотров, чем больше c, тем больше "равных возможностей для всех".
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Ninazu
@Ninazu
Зависит от того где храните эти данные и в каком виде.

Например для MySQL можно указывать последовательность сортировки в ORDER BY
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы