Как управлять вероятностями появления поста (рейтинг, сортировка, "рекомендованное")? Главный вопрос:
(общее кол-во лайков 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
230 +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 Апр 2024 в 11:03
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир