Задать вопрос
@solomonych

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

Приветствую!


Есть вот такая интересная задачка, которую мой программист что-то не может никак осилить:


у меня на сайте (строительный портал) решили внедрить что-то типа своей тизерной сети…

написать ее проблем не составило, но вот на чем произошел стопор:


вероятность показа объявлений решили сделать произведением ctr и цены клика, введенной рекламодателем (по системе гугла — выигрывает пересечение высокой цены клика и высокого качества объявления)…


Но вот как эффективно и правильно реализовать такое управления выборкой объявлений, пока не смогли допереть…


Буду благодарен за любые советы!!! :)
  • Вопрос задан
  • 2814 просмотров
Подписаться 2 Оценить 1 комментарий
Пригласить эксперта
Ответы на вопрос 3
@ShouldNotSeeMe
Если база объявлений в MySQL и объявлений не очень много, то можно приблизительно так:
SELECT… ORDER BY ctr*price+RAND()
где x — некоторый коэффициент
Ответ написан
Позволю предложить тяжелое математическое решение:

1) нормализация и одновременно определение границ RND() для каждого объявления: ( LEFT[i]; LEFT[i+1] )

NORM=0
for i=0 to N-1
LEFT[i] = NORM
NORM = NORM + CTR[i]*PRICE[i]

2) работа

ADV_ID = GET_i_BY_LEFT_BORDER( RND()*NORM )
Ответ написан
Комментировать
@1x1
ORDER BY RAND() — самый простой, но весьма медленный для объёмных таблиц, это тоже стоит учитывать.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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