» »

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!

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.
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.:D

webfreak ::

Nedolgo nazaj smo o tem razpravljali malce v tej temi.

Če pa tole ni to pa gremo dalje ;)

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.
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... :8) 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.:D

Cyberlukir ::

Js sem imel v mislih "Slika dneva"

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.

OwcA ::

Hočeš reči, da si 10 slik namnožil na 366?
Otroška radovednost - gonilo napredka.

Backup22 ::

>:D
//

Elemen_T ::

Cronjob?

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 ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Po pol leta AMD-jevi procesorji še vedno s hroščem (strani: 1 2 )

Oddelek: Novice / Procesorji
5412458 (9590) MrStein
»

Google tudi uradno naznanil kvantno premoč, pri IBMu ugovarjajo

Oddelek: Novice / Znanost in tehnologija
1913231 (10331) Markoff
»

[php] unique random

Oddelek: Izdelava spletišč
141203 (913) Yacked2
»

Zaščita pred zaganjanjem tujih aplikacij na Xbox 360 končno premagana

Oddelek: Novice / Varnost
2710306 (8484) Looooooka
»

Varnost generatorjev naključnih števil

Oddelek: Novice / Varnost
486278 (6277) Thomas

Več podobnih tem