[RoLUG] codice random banner
Roccatello Eduard
rolug@lists.linux.it
Thu, 20 Mar 2003 19:19:25 +0100
Questo =E8 il codice che ho prodotto per la rotazione causale dei banner.
=E8 perfettamente funzionante e rispetta le priorit=E0 dei banner (un banne=
r a=20
priorit=E0 pi=F9 alta deve essere visualizzato pi=F9 volte).
[CODE]
nBanner =3D BM_rs.recordCount
pesoTot =3D 0
' Max range of selection
do while not BM_rs.EOF
pesoTot =3D pesoTot + BM_rs("peso")
BM_rs.Movenext
loop
=20
' Pick a random value in range
Randomize
rndBanner =3D int(rnd * pesoTot)
=20
' Pick the relative banner
BM_rs.Movefirst
counter =3D 0
do while counter + BM_rs("peso") < rndBanner
counter =3D counter + BM_rs("peso")
BM_rs.MoveNext
loop
[CODE END]
Che ottimizzazioni si possono fare? vorrei avere il minor carico di sistema=
=20
possibile anche se lo script sembra generare un basso carico (non ho ancora=
=20
analizzato le prestazioni contando gli accessi in lettura ma credo che=20
asintoticamente sia O(n)).
si potrebbe eliminare il primo ciclo ma poi dovrei utilizzare due query=20
invece che una sola
si accettano critiche e consigli.
per chi non lo avesse capito quel codice =E8 ASP :-P
=2D-=20
Eduard Roccatello
RoLUG member @ http://rovigo.linux.it
Modding, overclock and hardware reviews @ http://www.pcimprover.it
Look at the headers for my GnuPG key and Jabber ID