@zvonok1337

Как сделать систему рекламных объявлений, показывающих равномерно?

Всем привет, подскажите, пожалуйста, с задачей:

Как сделать систему рекламных объявлений, чтобы они все показывались равномерно?

Пример: имею 5 рекламных объявлений, они все показываются в данный момент с помощью рандома, что не является честным.
Хочу сделать так, чтобы 5 рекламных объявлений показывались приблизительно одинаковое количество раз. Чтобы потом, если к ним добавить еще 1 рекламное объявление, то оно показывалось с такой же частотой, как и было, только уже поделённое на 6.

(то есть делать счётчик, который учитывает количество показов текущих - и на основе него показывать то, которое имеет наименьшее количество показов - не вариант, потому что при добавлении нового, 6-го объявления - оно будет показываться много раз подряд, пока не догонит предыдущие. Сбрасывать счётчик у всех объявлений при добавлении нового - тоже не вариант)

Все объявления равны по приоритету между собой.

Какие есть способы решения, как это гуглить, куда смотреть, и что я забыл упомянуть для вас?

P.S. ситуация в разы сложнее, пример упрощен
  • Вопрос задан
  • 105 просмотров
Решения вопроса 3
Sanasol
@Sanasol Куратор тега Веб-разработка
нельзя просто так взять и загуглить ошибку
Ответ написан
Комментировать
LaRN
@LaRN
Senior Developer
Может вот этот вариант подойдет:
https://tproger.ru/problems/rand-element-sequence/
Ответ написан
Комментировать
BorLaze
@BorLaze
Java developer
Берем массив объявлений - (1, 2, 3).
Перемешиваем - (3, 1, 2).
Показываем по очереди, пока не покажем все - 3, 1, 2.
Переходим к п.1

Результат - в каждой итерации мы гарантированно покажем все объявления в случайном порядке.
При добавлении нового на новой итерации оно будет показано наравне со старыми.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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