![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| olegti |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 62 Регистрация: 9.7.2009 Репутация: нет Всего: нет |
Директор поставил задачку,написать алгоритм, но ничего не проходит в голову!
1.Имеем объекты со следующей ценой (цена может быть любая) A 33.010101 B 25.765201 C 13.888888 D 05.000000 E 00.010000 F 17.989898 И т.д. 2.Необходимо выбрать Random a. По одному объекту b. По два объекта c. По три объекта 3.Частота выпадания объекта должна быть пропорциональна цене 4.Два одинаковых объекта выпадать не должны В общих чертах - существует панел где размещенны баннеры (3 шт), у каждого баннера своя цена. Смысл в том, чтобы после обновления страницы баннеры появлялись с разной частотой, т.е. если баннер стоит 50$ - то он будет появляться чаще, чем баннер за 30$, а если он стоит 5$ - то появляться он будет на много реже! |
|||
|
||||
| pizzz |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 238 Регистрация: 14.12.2008 Где: Омск Репутация: нет Всего: 8 |
Цена изменяеться?
Добавлено через 32 секунды Баннеров много? --------------------
Спасибо много, жмем кнопку репутация. Извините меня за орфографические ошибки, я стараюсь не ошибаться, а они все равно просачиваются гады. |
|||
|
||||
| olegti |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 62 Регистрация: 9.7.2009 Репутация: нет Всего: нет |
да, цена меняется! а по поводу баннеров, в самой понели их 3 штуки, а появляться будут больше, но по очереди, после каждого обновления страницы! |
|||
|
||||
| pizzz |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 238 Регистрация: 14.12.2008 Где: Омск Репутация: нет Всего: 8 |
Сумбурно... Но извините уже рабочий день закончен.
Получаем сумму цены всех банера из базы. делим ее например на 0.1 (можно на 1) это будет СРЕДНЕЕ теперь создаем пустой массив Теперь заполняем этот массив. Ключи числа. Значения ид домена. Количество элементов в массиве для 1 банера = денег за банер / на СРЕДНЕЕ (То есть получаеться например 2 банера, один 30, второй 70. в итоге получаем такой массив: $a[0] = 'баннер 1'; $a[1] = 'баннер 1'; ... $a[29] = 'баннер 1'; $a[30] = 'баннер 1'; $a[31] = 'баннер 2'; $a[32] = 'баннер 2'; ... $a[99] = 'баннер 2'; $a[100] = 'баннер 2'; ) теперь получаем случайное число от 0 до количество элементов массива. Подставляем в ключ массива и получаем ид баннера. Добавлено через 1 минуту и 54 секунды Ошибся Добавлено через 6 минут Идея понятна? Чет вобше не думаеться... --------------------
Спасибо много, жмем кнопку репутация. Извините меня за орфографические ошибки, я стараюсь не ошибаться, а они все равно просачиваются гады. |
|||
|
||||
| solenko |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1473 Регистрация: 15.1.2006 Где: Украина Репутация: 2 Всего: 67 |
В простейшем виде что-то вроде этого. Частотой управлять можно изменяя расчет веса (например, возьмете квадраты и разница увеличится) -------------------- Ла-ла-ла-ла Заметьте, нет официального подтверждения, что это не просто четыре слога. |
|||
|
||||
| pizzz |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 238 Регистрация: 14.12.2008 Где: Омск Репутация: нет Всего: 8 |
solenko, решил провести тест. И вот что он показал:
Array ( [60] => 66331 [70] => 10895 [80] => 10911 [90] => 11863 ) Array ( [60] => 66339 [70] => 10893 [90] => 11879 [80] => 10889 ) Array ( [60] => 66330 [80] => 10905 [70] => 10889 [90] => 11876 ) Array ( [90] => 11885 [80] => 10887 [70] => 10878 [60] => 66350 ) Array ( [60] => 66347 [80] => 10886 [90] => 11889 [70] => 10878 ) Сам код:
Что то нето... Добавлено через 1 минуту и 7 секунд Сейчас напишу свой вариант, и проведу так же тесты --------------------
Спасибо много, жмем кнопку репутация. Извините меня за орфографические ошибки, я стараюсь не ошибаться, а они все равно просачиваются гады. |
|||
|
||||
| pizzz |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 238 Регистрация: 14.12.2008 Где: Омск Репутация: нет Всего: 8 |
А вот мои результаты
Array ( [80] => 26685 [60] => 19981 [70] => 23343 [90] => 29991 ) Array ( [90] => 30008 [80] => 26677 [70] => 23304 [60] => 20011 ) Array ( [90] => 30008 [80] => 26688 [70] => 23302 [60] => 20002 ) Array ( [40] => 8662 [80] => 17318 [90] => 19473 [70] => 15156 [50] => 10823 [60] => 12970 [15] => 3239 [12] => 2614 [30] => 6499 [14] => 3030 [1] => 216 ) сам код
--------------------
Спасибо много, жмем кнопку репутация. Извините меня за орфографические ошибки, я стараюсь не ошибаться, а они все равно просачиваются гады. |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: нет Всего: 454 |
Стоимость баннеров конвертируем в смежные диапазоны, например
Исходный массив стоимостей: баннер1=20, баннер2=50, баннер3=5 Массив диапазонов: баннер1=0..20, баннер2=21..70, баннер3=71..75 Теперь осталось взять rand(0, 75) и посмотреть, какой баннер выводить. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Для профи | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |