Forum » Izdelava spletišč » Random skripta
Random skripta
Cyberlukir ::
Pozdravljeni. Potrebujem random skripto, ki bi imela tole funkcijo: V mapi na serverju bi imel 10 slik. In vsak dan bi se naključno prikazala ena slika. Dones ta jutri ona. Če bi se pa dalo, da se en dan za drugem nemore prikazat ena in ista slika. Primer: danes je slika 1, jutri se ne more prikazati spec slika 1, ampak naprimer slika 4.
Upam da ste me razumel.
Hvala!
Upam da ste me razumel.
Hvala!
OwcA ::
Nam zaupaš še v katerem jeziku misliš to spackati.
Generičen recept je, da zbašeš imena vseh kandidatov v polje in pripraviš generator naključnih števil do tega, da ti ven pluva smo vrednosti, ki so veljavni indeksi. Za seme uporabiš timestamp za neko fiksno uro (recimo 0:0:0) vsakega dne, tako da dobiš za vsak klic v enem dnevu isti rezultat.
Podvajanja se rešiš tako, da si shranjuješ prejšen rezultat in v primeru ponovitve kličeš generator naključnih števil vse dokler (v tvojem primeru še enkrat) ne dobiš sprejemljivega rezultata.
Generičen recept je, da zbašeš imena vseh kandidatov v polje in pripraviš generator naključnih števil do tega, da ti ven pluva smo vrednosti, ki so veljavni indeksi. Za seme uporabiš timestamp za neko fiksno uro (recimo 0:0:0) vsakega dne, tako da dobiš za vsak klic v enem dnevu isti rezultat.
Podvajanja se rešiš tako, da si shranjuješ prejšen rezultat in v primeru ponovitve kličeš generator naključnih števil vse dokler (v tvojem primeru še enkrat) ne dobiš sprejemljivega rezultata.
Otroška radovednost - gonilo napredka.
Zgodovina sprememb…
- spremenilo: OwcA ()
jeti51 ::
Pa ko bo to (teoretično, seveda) razširil na 10000 slik? In jih bo do takrat prikazalo že 9999? Koliko iteracij bo trajalo, da zadane ravno tistodesettisočo sliko?
Je treba narediti tako, da vrne naključno sliko vedno v konstantnem času (recimo s pomočjo naključne permutacije).
Lepo in učinkovito programiranje pa to.
Je treba narediti tako, da vrne naključno sliko vedno v konstantnem času (recimo s pomočjo naključne permutacije).
Lepo in učinkovito programiranje pa to.
webfreak ::
OwcA ::
@jeti51: "do takrat" jih prikaže največ 1, tako da je to tudi največje število iteracij. Resda ni v konstantnem času, je pa tudi v najslabšem primeru učinkovitejše kot naključna permutacija. K-I-S
P.S. priznam, da sem napisal malo dvoumno -- sem popravil.
P.S. priznam, da sem napisal malo dvoumno -- sem popravil.
Otroška radovednost - gonilo napredka.
Zgodovina sprememb…
- spremenilo: OwcA ()
jeti51 ::
Hm, tega zdaj ne razumem čisto... ali je problem, da se ne sme dvakrat zapored pojaviti ista slika, ali da se mora najprej odvrteti vseh n slik (vsaka po enkrat), preden lahko spet začnemo prikazovati slike, ki so že bile prikazane v prejšnjem sklopu? Ker če je tako (jaz sem tako interpretiral), potem je treba pri tvojem načinu shranjevati vse dosedaj izbrane slike in ne le zadnje izbrane. In pri n-1 izbranih slikah bo lahko random generator tisto preostali n-to sliko kar dolgo ciljal.
Edit: aja, sem jaz površno bral... res samo ne sme biti ena slika v dveh dneh zapored, lahko pa je recimo vsak drugi dan.
Čeprav bi jaz vseeno naredil tako, da se v n dneh naključno odvrti vseh n slik (vsaka točno enkrat), potem se pa zadeva ponovi. Bo nabor prikazanih slik bolj raznovrsten in pester, ampak to je že druga zgodba. Samo predlagam pač.
Edit: aja, sem jaz površno bral... res samo ne sme biti ena slika v dveh dneh zapored, lahko pa je recimo vsak drugi dan.
Čeprav bi jaz vseeno naredil tako, da se v n dneh naključno odvrti vseh n slik (vsaka točno enkrat), potem se pa zadeva ponovi. Bo nabor prikazanih slik bolj raznovrsten in pester, ampak to je že druga zgodba. Samo predlagam pač.
Zgodovina sprememb…
- spremenil: jeti51 ()
OwcA ::
Čeprav bi jaz vseeno naredil tako, da se v n dneh naključno odvrti vseh n slik (vsaka točno enkrat), potem se pa zadeva ponovi. Bo nabor prikazanih slik bolj raznovrsten in pester, ampak to je že druga zgodba. Samo predlagam pač.
Se strinjam.
... lahko bi še dopolnil z minimalnim dovoljenim razmakom med isto sliko.
Otroška radovednost - gonilo napredka.
jeti51 ::
... lahko bi še dopolnil z minimalnim dovoljenim razmakom med isto sliko.
Res je, s tem se tudi strinjam. Da se ne pojavi kakšna slika na koncu enega in potem recimo takoj na začetku drugega cikla.
Se vidi, da smo programerji, ker tako kompliciramo.
jeti51 ::
Saj to nama je čisto jasno. Midva sva debatirala o tem, kako doseči, da bi se slike približno enakomerno kazale tudi v krajših časovnih obdobjih (krajših od n dni). Saj najbrž ne želiš tega, da se ti v desetih dneh za sliko dneva 3x pojavi ena in ista, medtem ko kakšna sploh ne bi na vrsto prišla, kajne?
Cyberlukir ::
Sm rešu problem. Zdej sm vstavil tako skripto, ki iz enega direktorija, pobira slike, ki so označene tako kot dan in mesec naprimer za danes: 30-01.jpg To skripto je naredil publikum. Zato vsa čast pripada njemu.
njok ::
Danasnji sliki naredis touch, jutri pa izbereš tisto, ki ni bila največ časa na vrsti. Prvi obiskovalec vsak dan (po času na strežniku) sproži refresh datoteke, ki hrani naslov trenutne slike.
:)
:)
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Po pol leta AMD-jevi procesorji še vedno s hroščem (strani: 1 2 )Oddelek: Novice / Procesorji | 12458 (9590) | MrStein |
» | Google tudi uradno naznanil kvantno premoč, pri IBMu ugovarjajoOddelek: Novice / Znanost in tehnologija | 13231 (10331) | Markoff |
» | [php] unique randomOddelek: Izdelava spletišč | 1203 (913) | Yacked2 |
» | Zaščita pred zaganjanjem tujih aplikacij na Xbox 360 končno premaganaOddelek: Novice / Varnost | 10306 (8484) | Looooooka |
» | Varnost generatorjev naključnih številOddelek: Novice / Varnost | 6279 (6278) | Thomas |