Autor | Zpráva | ||
---|---|---|---|
Anonym_ Profil * |
#1 · Zasláno: 13. 2. 2015, 22:20:11
Dobrý den,
řeším teď jeden problém v algoritmu. Dělám systém, který zobrazí na externích webech okénko, kde je odkaz, na kterém uživatelé mohou nahlásit chybu na webu, kontaktovat nás, apod. To okénko bude zobrazené na desítkách webů, a já potřebuji nastavit, aby se na webu A zobrazilo jen 50% uživatelů, na webu B 25% uživatelů, apod. To znamená, že pokud na web A příjde za den 100 lidí, tak se okénko zobrazí jen 50 lidem (50%). Pokud na web B příjde 200 lidí za den, tak se zobrazí jen 50 lidem (25%), apod. Zkrátka, potřebuji ovlivnit, kolika procentum uživatelů, zobrazím to okénko. Řešením by bylo, kdybych znal předem počet uživatelů, který přijde za den na web, jenže to samozřejmě nejde spočítat. Dalším řešením by bylo, že 50% = každý druhý, 25% = každý čtvrtý, apod. To znamená, něco jako: if($count++ == 4) { // zobrazené okénko pro 25% uživatelů } Děkuji. |
||
juriad Profil |
Anonym:
Tak toho uživatele nějak identifikuj. Náhodně mu vygeneruj číslo a to ulož do cookie. Pro každý web mu vygeneruješ nové číslo (bude v různých cookies, aby měl novou šanci být (ne)vybrán. Když budeš generovat náhodná čísla, tak statisticky bude těch uživatelů blízko zadané hranice. $uzivatel = rand(); $skupina = 65; if ($uzivatel % 100 < $skupina) { # ve skupině } else { # ve zbytku } |
||
mimochodec Profil |
#3 · Zasláno: 13. 2. 2015, 22:37:39
Nebudeš inkrementovat (tedy přičítat 1) a porovnávat s celým číslem, ale přičítat desetinu nebo klidně setinu a porovnávat s číslem udaným na dvě desetinná místa.
|
||
Joker Profil |
#4 · Zasláno: 13. 2. 2015, 23:42:40
Anonym:
„jenže já potřebuji hýbat s procenty po pěti. Například 65% = každý 1,5384615385. Jak mám ale tohle číslo zasadit do skriptu?“ Tak jednoduše. To číslo je (1 / procento) * 100 Pak by to šlo udělat analogicky: Při každé návštěvě je počítadlo++ a pokud počítadlo je větší nebo rovné tomu číslu, provede se akce a od počítadla se odečte to číslo. Tj. pro 65 % by hodnoty počítadla byly: 1 2 → 0.4615… 1.4615… 2.4615… → 0.923… 1.923… → 0.3846… 1.3846 2.3846 → 0.846… atd. |
||
Anonym_ Profil * |
#5 · Zasláno: 14. 2. 2015, 00:15:10
Děkuji mnohokrát!
|
||
Časová prodleva: 9 let
|
0