Autor Zpráva
Giga
Profil
Mám na stránke ilustračný obrázok, náhodne vybraný z množiny.
Po doplnení nových - aktuálnych obrázkov by som chcel, aby sa tieto nové obrázky
zobrazovali s vyššou pravdepodobnosťou.

Prosím o nejaký námet, alebo radu, ako na to.

Používam PHP a MySQL.
Chro.
Profil
Do pole vložit všechny nové a polovinu k počtu nových náhodné staré. Pak buď polem zamíchat funkcí shuffle a vybrat první obrázek z pole, nebo vybrat některý z pole funkcí rand.
Keeehi
Profil
Giga:
A tu množinu obrázků máte uloženou jak? Každý obrázek má položku v databázi, máte to natvrdo v kódu, zjišťujete obsah určitého adresáře, nebo nějak jinak? A jste schopný určit které jsou nové a které staté, nebo to víte jen vy? A ještě jak byste si představoval tu vyšší pravěpodobnost?
Giga
Profil
Obrázky sú nateraz vymenované v poli.
A tie novšie som do zoznamu pridal dvakrát, čím som zvýšil pravdepodobnosť ich zobrazenia.
Ale je to príliš nesystémové riešenie, tak vymýšľam, čo s tým.

Realizáciu zoznamu obrázkov prispôsobím logike algoritmu.
Novšie sa môžu identifikovať dátumom pridania, alebo vyšším poradovým číslom záznamu, alebo aj
atribútom v databázi.
Vyššiu pravdepodobnosť si predstavujem napr. tak, že aspoň každý štvrtý obrázok bude z nových.
(pracujem zo súborom cca 50 obrázkov)
Keeehi
Profil
Giga:
A stačí ti statistická přesnost tedy že většinou se ten nový zobrazí do 4 požadavků a nebo to chceš ošetřit napevno že ať se děje co seděje, tak nejdpozději 4. obrázek bude ten nový.
NudimSeVeSkole
Profil *
Pokud je máš nahazene natvrdo do pole, bude nejkrkolomnější a zároveň v rámci naprogramování nejjednodušší zajistit náhodné číslo 2x. Tzn. jedno, ktere urci z jake mnoziny se nahodne cislo vybere a druhe uz vybirajici nahodny obrazek z dane mnoziny.
Mam 50 obrazku a doplnim 20. takze rand(1,4) na urceni jestli nove/stare a pak rand(1,50), nebo rand(50,70).
Giga
Profil
Určite štatisticky.

(žiadne sledovanie, komu sa ktoré obrázky koľkorát zobrazili, nemienim robiť)
Keeehi
Profil
$old = array(/*pictures*/);
$new= array(/*pictures*/);
$oneIn = 4;

if (mt_rand(1, $oneIn) === 1) {
    echo $new[mt_rand(0, count($new)-1)];
} else {
    echo $old[mt_rand(0, count($old)-1)];
}
S tímto kódem bude přibližně každý čtvrtý obrázek ten nový. Což bych tedy považoval za preferenci těch starších, jelikož se zobrazí v 75% případů, ale pokud těch nových je jen pár pak i toto je zlepšení.
NudimSeVeSkole
Profil *
Jinak: 50 obrazku, pridam 25 a chci, aby vysledna sance byla 50% -
Do volby nahodneho cisla tedy prictu dalsich 25. V priade, ze padne cislo nad 75, 25 odectu.
Cele to tak muze byt v jednom array a vypocet je pomerne elegantni.
Giga
Profil
Ďakujem za návrhy.

NudimSeVeSkole
a vypocet je pomerne elegantni.

Máš pravdu ;-)

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0