Если весами являются w[1]
, w[2]
, ..., w[n]
, то процент p[i]
для i-го баннера будет:
p[i] = w[i] / sum(w)
То есть вес данного объявления, деленный на общую сумму весов. Ваша система баз данных должна быть в состоянии вычислить это довольно легко.
Если у вас относительно мало объявлений, и объявления получают гораздо больше просмотров, чем обновлений, возможно, стоит кэшировать этот p[i]
для каждого объявления, а затем пересчитывать его при каждом добавлении, удалении или изменении веса объявления.