@zvonok1337

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

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

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

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

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

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

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

P.S. ситуация в разы сложнее, пример упрощен
  • Вопрос задан
  • 109 просмотров
Решения вопроса 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

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

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

Похожие вопросы