Малко помощ от програмистите във форума

Взаимопомощ, полезна информация и всичко, извън темата на останалите секции
Потребителски аватар
Ivailo
Мнения: 9497
Регистриран на: Пет 27 апр 2007 15:21
Автомобил: VW Golf mk3
Двигател: AAZ
Местоположение: София/Видин
Контакти:

Малко помощ от програмистите във форума

Мнениеот Ivailo » Нед 23 авг 2009 21:57


Имам следната задача, поръчител е любимия на всички клуб :)
Пиша тук, защото в случая мисля, че няма голямо значение на какъв език се пише. Трябва да измисля алгоритъма.
Трябва да напиша banner management система, която освен, че трябва да избира банер на random принцип, трябва на всеки банер да му се зададе % вероятност да се падне точно той.
Например - имаме един банер с 10% вероятност и още един с 30%.
Как да направя нещата така, че за всеки банер да се показва точния брой пъти?
Как да направя нещата така, че ако имаме само 1 банер с 10% вероятност, да се показва той на всяко 10-то зареждане на страницата?
Банерите са в MySQL база, езика за програмиране е PHP...

Може да е доста тъпа задачата, ама съм зациклил яко и не мога да измисля решение..




Потребителски аватар
chefito
Мнения: 9527
Регистриран на: Сря 02 фев 2005 12:41
Автомобил:
Двигател:
Местоположение: Пловдив

Re: Малко помощ от програмистите във форума

Мнениеот chefito » Нед 23 авг 2009 22:02


Нямаше ли около 100тина готови ад системи? Закво ше си играеш да пишеш?


Потребителски аватар
Ivailo
Мнения: 9497
Регистриран на: Пет 27 апр 2007 15:21
Автомобил: VW Golf mk3
Двигател: AAZ
Местоположение: София/Видин
Контакти:

Re: Малко помощ от програмистите във форума

Мнениеот Ivailo » Нед 23 авг 2009 22:16


Не ме устройва готов скрипт, знам, че има много.


Потребителски аватар
musura
Сър
Мнения: 7129
Регистриран на: Пон 28 мар 2005 21:01
Автомобил:
Двигател:
Местоположение: Голям Поровец

Re: Малко помощ от програмистите във форума

Мнениеот musura » Нед 23 авг 2009 22:30


Сравнително просто решение е да се направи един таблица със 100 позиции. Примерно една реклама трябва да се показва 10% от времето - то тя се вписва в 10 клетки от таблицата. Друга реклама трябва да е 20% - то тя се вписва в 20 клетки и така. После се генерира случайно число, умножава се по 100 и се показва рекламата от падналата се клетка. Ако примерно има само една реклама с 10% показване и няма други, тогава останалите 90 полета се оставят празни или с "празен банер" и шанса да се падне празния е точно 90% ;)

Едит: Сега си мисля, че всъщност няма да има реклами с 22% коефицент, така че може спокойно да се направят само 10 клетки и възможните шансове за показване да са кратни на 10 (10%, 20%...100%).


Потребителски аватар
Ivailo
Мнения: 9497
Регистриран на: Пет 27 апр 2007 15:21
Автомобил: VW Golf mk3
Двигател: AAZ
Местоположение: София/Видин
Контакти:

Re: Малко помощ от програмистите във форума

Мнениеот Ivailo » Нед 23 авг 2009 23:36


Това е добра идея, само че ще изключа втората таблица...
Общо взето се опитвам да минимизирам всякакви излишни запитвания към базата mhihi
Така ми се върти из главата:
Избирам всички банери. Сумирам процентите, избирам произволно число (ако са под 100% общо между 1 и 100, ако са над 100- между 1 и общата сума) и гледам дали попада в някоя група.
Ако попада взимам тоя банер. Ако не попада не показвам нищо.

На теория звучи добре, сега ще видим как ще го реализирам.
Благодаря на мусура за идеята :bowdown :bowdown :bowdown
Може да ключите, ако имам нужда от нещо друго ще помоля някой правоимащ да отключи.


Потребителски аватар
vw_golf_4_tdi
Мнения: 1647
Регистриран на: Чет 09 юли 2009 23:31
Автомобил:
Двигател:
Местоположение: Varna
Контакти:

Re: Малко помощ от програмистите във форума

Мнениеот vw_golf_4_tdi » Нед 23 авг 2009 23:40


а защо в таблицата с рекламите не поставиш броячи?
брояч общи показвания
брояч реклама 1
брояч реклама 2
...

посещение 1,
брояч посещения 0->1
показва се реклама 1, брояч реклама 1: 0->1
посещение 2,
брояч посещения 1->2
показва се реклама 2, брояч реклама 2: 0->1
...
посещение 10,
брояч посещения 9->10
брояч реклама 1: 1
брояч реклама 2: 4
брояч реклама 3: 4
показваш реклама 3, нараства брояча на реклама 3
и вече с нарастване на броя посещения до 100, променяш пропорцията на показванията.
като стигнеш 100 ги зануляваш.


Потребителски аватар
Ivailo
Мнения: 9497
Регистриран на: Пет 27 апр 2007 15:21
Автомобил: VW Golf mk3
Двигател: AAZ
Местоположение: София/Видин
Контакти:

Re: Малко помощ от програмистите във форума

Мнениеот Ivailo » Пон 24 авг 2009 0:28


Не ми се иска да тормозя сървъра допълнително с INSERT/UPDATE заявки на всяко зареждане на страницата...


myrshavija
Мнения: 5553
Регистриран на: Вто 05 апр 2005 6:45
Автомобил:
Двигател:

Re: Малко помощ от програмистите във форума

Мнениеот myrshavija » Пон 24 авг 2009 5:21


ISRalien написа:...Сумирам процентите, избирам произволно число (ако са под 100% общо между 1 и 100, ако са над 100- между 1 и общата сума) ...

Тва дето сумираш проценти и получаваш над 100% не ми се вижда много читаво.


Потребителски аватар
bobo7
форумно КГБ
Мнения: 9453
Регистриран на: Чет 16 юни 2005 20:43
Автомобил:
Двигател: AGN
Местоположение: София
Контакти:

Re: Малко помощ от програмистите във форума

Мнениеот bobo7 » Пон 24 авг 2009 11:05


10% вероятност не означава да се показва на всяко 10 презареждане, само да поясна
10% вероятност е че е много вероятно на ясяко 10 презареждания да се покаже то, но не е задължително


Потребителски аватар
Ivailo
Мнения: 9497
Регистриран на: Пет 27 апр 2007 15:21
Автомобил: VW Golf mk3
Двигател: AAZ
Местоположение: София/Видин
Контакти:

Re: Малко помощ от програмистите във форума

Мнениеот Ivailo » Пон 24 авг 2009 11:54


myrshavija написа:
ISRalien написа:...Сумирам процентите, избирам произволно число (ако са под 100% общо между 1 и 100, ако са над 100- между 1 и общата сума) ...

Тва дето сумираш проценти и получаваш над 100% не ми се вижда много читаво.

Става въпрос ако хората, които добавят банери не са сметнали правилно и сумата от всички надхвърля 100%.


Потребителски аватар
musura
Сър
Мнения: 7129
Регистриран на: Пон 28 мар 2005 21:01
Автомобил:
Двигател:
Местоположение: Голям Поровец

Re: Малко помощ от програмистите във форума

Мнениеот musura » Пон 24 авг 2009 11:55


@Бобо:
така е ;) но според науката, нещата с вероятност 10% се случват 10% от случаите с точност 99% ;) при многократно изпълнение на задачата. Примерно при един милион показвания, банера с 10% шанс ще е 99.99% до точната бройка от 10%.

Друг е въпроса, че примерно може да се случи при 5 поредни показвания да се показва банера с най-малка вероятност, но при статистиката говорим за многократно повтарящи се опити, демек хиляди и десетки хиляди.


Потребителски аватар
bobo7
форумно КГБ
Мнения: 9453
Регистриран на: Чет 16 юни 2005 20:43
Автомобил:
Двигател: AGN
Местоположение: София
Контакти:

Re: Малко помощ от програмистите във форума

Мнениеот bobo7 » Пон 24 авг 2009 11:56


това с 99% не съм съгласен ;)


Потребителски аватар
Vizor
Изгубена душа
Мнения: 12509
Регистриран на: Съб 04 мар 2006 16:01
Автомобил: Subaru Forester XT
Двигател:
Местоположение: София
Контакти:

Re: Малко помощ от програмистите във форума

Мнениеот Vizor » Пон 24 авг 2009 12:03


Хмм.. сега се замислям..
10% шанс да спечелиш от Тотото
обаче ти си загубеняк и с тоя 10 процентен шанс не ти сработва

не го разбирам тоя шанс
имам в предвид следното:

10% шанс да се спъна в някаква тухла която седи на пътя ми
минавам по "пътя ми" и имам 10% шанс да се спъна нали така?
обаче не се спъвам
минавам пак..
пак не се спъвам
пак минавам.. пак не се спъвам
и така.. 9 пъти
и излиза, че вече на 10-тия път аз задължително трябва да се спъна (ако реално такъв е шанса)
малко ми е нереално
то е 10% не от 10 пъти.. а от 1 път
сиреч точно в тоя път в който ти минаваш от там
ами ако тоя 10% шанс не сработи 20 пъти?
трябва да измислиш друга логика а не в проценти.. според мен е куцо

примерно Бойко има 50% шанс да вкара дузпата (или да я вкара или да я изпусне)
обаче Бойко бие 10 дузпи и 10-те ги изпуска (както попринцип прави)


Потребителски аватар
Ivailo
Мнения: 9497
Регистриран на: Пет 27 апр 2007 15:21
Автомобил: VW Golf mk3
Двигател: AAZ
Местоположение: София/Видин
Контакти:

Re: Малко помощ от програмистите във форума

Мнениеот Ivailo » Пон 24 авг 2009 12:46


Адаш, не сметаш правилно.
10% шанс значи, че ако минеш 10 пъти поне 1 път ще се спънеш в тухлата. Не е казано, че тоя път трябва да е баш 10-я.

Според мен целта на задачата е такава - при 1 милион хита например, банера да се покаже 100 000 пъти за 10%.
С тоя скрипт вервам да постигна целта. Плюс-минус 1-2 % не е проблем според мен.


Потребителски аватар
musura
Сър
Мнения: 7129
Регистриран на: Пон 28 мар 2005 21:01
Автомобил:
Двигател:
Местоположение: Голям Поровец

Re: Малко помощ от програмистите във форума

Мнениеот musura » Пон 24 авг 2009 13:38


Vizor-e бате, в какъв филм ме вкарваш ;) Тези неща се учат по математика, конкретната дисциплина се казва "Теория на вероятностите" и е част от изпита по ИГМ (избрани глави от математиката), което се учеше във втори курс на МЕИ-то (ТУ) на времето. В икономиките също се изучава тази теория. Както писах по-горе, вероятността нещо да се падне е свързано с броя повторения на опита. Можеш да тестваш лично, като в една торба сложиш 9 черни и 1 бяло топче, разбъркваш ги, бъркаш и вадиш. На всеки опит записваш какво си извадил - бяло или черно. После примерно след 1000 опита дръпваш чертата и гледаш колко пъти си вадил бяло топче ;) (тук номера е да не чийтваш когато разбъркваш топките :lol: )



Върни се в “ОФФ-Топик - други”

Кой е на линия

Потребители, разглеждащи този форум: Няма регистрирани потребители и 37 госта