есть ротатор баннеровскрипт вытягивает из базы все записи
складывает их УИНы в массивпотом по рандому выбирает число и по этому числу из массива вытягивает номер баннера в базе ну и показывает его...
это общее, тут попросили сделать так чтобы у кого приоритет был выше.. тот и показывался чаще, насколько я понимаю, верхний подход уже не верен в корне, что и как можно сделать?
Ну допустим можно дублировать номера баннеров в массиве, или более сложная система: вешать демона, который ведёт статистику показов каждого баннера и показывать их в приоритетном порядке, допустим ты делаешь 50000 показов в час, у тебя 100 баннеров, и => 50000/100 = 500 показов (если у всех одинаковый приоритет), а дальше всё формулы :)
>Ну допустим можно дублировать номера баннеров в массиве, или более сложная система: вешать демона, который ведёт статистику показов каждого баннера и показывать их в приоритетном порядке, допустим ты делаешь 50000 показов в час, у тебя 100 баннеров, и => 50000/100 = 500 показов (если у всех одинаковый приоритет), а дальше всё формулы :)
!!! голова... шариж :).. пашел писать.. благодарю ще раз
Какие нахрен демоны??????
Тема обсуждалась неоднократно
http://phpclub.ru/talk/showthread.php?threadid=33757
>Какие нахрен демоны??????
>Тема обсуждалась неоднократно
>http://phpclub.ru/talk/showthread.php?threadid=33757Обрати внимание, что я предложил 2 решения, одно из них с повторяющимися "баннерами", а демоном можно сэкономить память и не забивать повторяющейся чепухой!
>>Какие нахрен демоны??????
>>Тема обсуждалась неоднократно
>>http://phpclub.ru/talk/showthread.php?threadid=33757
>
>Обрати внимание, что я предложил 2 решения, одно из них с повторяющимися
>"баннерами", а демоном можно сэкономить память и не забивать повторяющейся чепухой!
>
Ты последний пост внимательно прочитал?
>Какие нахрен демоны??????
>Тема обсуждалась неоднократно
>http://phpclub.ru/talk/showthread.php?threadid=33757да перечитал от и до... все равно там сводиться к тому же что и у меня было, потому мне как бы ближе вариант второй.. от Стелза
>Ну допустим можно дублировать номера баннеров в массиве,Слишком большие накладные расходы при большом расхождении приоритетов. Допустим, у одного из 100 баннеров вес 10000, или всего 10000 баннеров со средним весом 100 - уже нужен массив в 1000000 записей.
Предлагаю использовать дерево с начальным весом баннера в ветви.
N - суммарный вес всех элементов
R - случайное число из диапазона [0..N].
BI - индекс искомого баннера.
BW - сквозной начальный вес BI, т.е. вес следующего баннера суммируется относительно предыдущих.Выбираем ветку с наименьшим BW > R.