Как управлять вероятностями появления поста (рейтинг, сортировка, "рекомендованное")? Главный вопрос:
(общее кол-во лайков 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?

14 Июн 2020 в 19:46
201 +1
0
Ответы
1

Для управления вероятностями появления поста в вашем случае можно использовать весовые коэффициенты для каждого поста, основанные на количестве лайков и просмотров.

Например, вы можете определить вес для каждого поста, умножив количество лайков и просмотров, и затем использовать полученные значения для рассчета вероятностей. Посты с большими значениями будут иметь более высокую вероятность показа, чем посты с меньшими значениями.

Для выборки случайных постов с предпочтением на более высокий рейтинг, вы можете использовать функцию rand() для генерации случайного числа и алгоритм для определения вероятности показа каждого поста.

Пример алгоритма на PHP:

$posts = array(
0 => array("likes" => 20, "views" => 65),
1 => array("likes" => 15, "views" => 200),
// Добавьте остальные посты
);
$weightedPosts = array();
$totalWeight = 0;
foreach ($posts as $key => $post) {
$weight = $post['likes'] * $post['views'];
$weightedPosts[$key] = $weight;
$totalWeight += $weight;
}
$randomNumber = rand(0, $totalWeight);
$selectedPost = null;
$accumulatedWeight = 0;
foreach ($weightedPosts as $key => $weight) {
$accumulatedWeight += $weight;
if ($accumulatedWeight >= $randomNumber) {
$selectedPost = $key;
break;
}
}
echo "Выбранный пост: " . $selectedPost;

Этот алгоритм поможет вам выбирать случайные посты с предпочтением на более высокий рейтинг на PHP. Вам также можно настроить параметры, чтобы добиться желаемой вероятности появления постов.

18 Апр в 11:03
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 84 706 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир