Автор Тема: Показ баннеров и нормальное распределение  (Прочитано 3016 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн RelaX

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 200
  • +0/-0
  • 0
    • Просмотр профиля
Здравствуйте!

Как лучше организовать равномерное распределение баннеров на сайте, чтобы можно было указывать приоритет баннера?
Просто вызывать генератор случайных чисел от ceil(mt_rand(1, $kolvo*1000)/1000)) - это равномерное распределение получается. У каждого баннера вероятность показа 1/$kolvo , где $kolvo - количество баннеров для определенного места на сайте.

Оффлайн Altaxar

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 222
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.moroseac.ru/
Показ баннеров и нормальное распределение
« Ответ #1 : 11 Апреля 2007, 14:42:16 »
Решал даную задачку :-)
сохраняешь каждому баннеру приоритет, число от 1 и далее, и будет значить во сколько раз чаще будет показываться от приоритета 1. далее создаешь массив приоритетов токим видом $mas[номер]=приоритет; далее сумируешь все значение массива, и генерируеш от 1 до sum .
далее проходишь по массиву и от сгенерированного числа отнимаешь приоритет, пока число не станет отречательным или 0, даный ключь массива и будет твоим ответом.

$mas
=array(2,5,10,1,3,2);
$mas2=array(\'baner1\',\'baner2\',\'baner3\',\'baner4\',\'baner5\',\'baner6\');
$x=array_sum($mas);
$y=mt_rand(1,$x);
for($i=0;$y>0;$i++)
  $y-=$mas[$i];
echo $mas2[$i-1];
Не все является тем чем кажется.

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28