Discussione:
[ASP] Generazione sequenza di numeri casuali
(troppo vecchio per rispondere)
Ivan Baldassi [ilG]
2003-09-29 11:01:30 UTC
Permalink
A te di preciso cosa serve daniele?

un generatore di numeri random, ma con quali accorgimenti?

Ciao
--
--
<IvanBaldassi aka="ilG" />
daniele
2003-09-29 12:05:17 UTC
Permalink
Ciao Ivan!

Mi serve generare una lista di numeri casuali da 0 a maxValue.

Lo stesso sistema che mi permette, ad esempio, di ottenere la seuqenza di estrazione dei numeri della tombola..
Se estraggo un numero dal sacchetto, questo non sarà più estraibile..non c'è più nel sacchetto :)

Grazie,

P.S.Hai ricevuto la mia fonferma per la pizzata del 4 ottobre (siamo in due)


daniele galiffa
multimedia designer &amp; developer
http://www.mentegrafica.it/daniele
***@mentegrafica.it
Ivan Baldassi [ilG]
2003-09-29 13:15:39 UTC
Permalink
Post by daniele
Lo stesso sistema che mi permette, ad esempio, di ottenere la seuqenza di
estrazione dei numeri della tombola..
Post by daniele
Se estraggo un numero dal sacchetto, questo non sarà più estraibile..non
c'è più nel sacchetto :)

ok ok...vedo se poi mi viene qualche idea:-)
Post by daniele
P.S.Hai ricevuto la mia fonferma per la pizzata del 4 ottobre (siamo in due)
iep ricevuto:) ci si vede sabato.

Ciao
--
--
<IvanBaldassi aka="ilG" />
MP
2003-09-29 14:09:29 UTC
Permalink
"> Mi serve generare una lista di numeri casuali da 0 a maxValue.

Usa un recordset sconnesso.
Poi usa la funzione randomize come hai scritto.
Poi fai una query nel recordset sconnesso "Where miocampo = numero appena
generato", se il recordset è EOF allora aggiungi il numero appena generato
al recordset (AddNew) altrimenti ne generi un altro.

E vai avanti finchè la lista la consideri completa (n elementi)
daniele
2003-09-29 15:03:21 UTC
Permalink
Ciao MP!

Potresti dettagliarmi meglio con un esempio?

Scusami, ma lavoro su ASP solo da pochi mesi.

Nel frattempo, provo a darmi da fare

Grazie ancora

daniele galiffa
multimedia designer &amp; developer
http://www.mentegrafica.it/daniele
***@mentegrafica.it
Ivan Baldassi [ilG]
2003-09-29 14:43:23 UTC
Permalink
allora in cfmx mi verrebbe da ragionare così (codice parafrasato per far
capire la logica:):


a = "1,2,3,4,5,6,7...ecc...,90" -->una lista con tutti i miei numeri

loop listLen(b) = 10 --> loop finchè la lista b non ha 10 valori
c = numetoRandom tra 1 e listlen -->numero random tra 1 e il numero più alto
della lista
h = listGetAt(a, c) -->prendo il numero della lista che ha come posizione c
(quindi uno dei numeri della lista random)

if listfind(b ,h) = 0 -->se nella lista che creo ossia b, non è gia presente
b = listaAppned(b, h) --> aggiungo h nella mia lista
fine if

fine loop

alla fine b avrà 10 una lista di 10 numeri tutti diversi tra loro.

Ora ricordando meglio le funzioni di cf che quelle di asp che sto lentamente
rimuovendo, ti ho descritto la logica...ora traduzione in asp se l'idea ti
piace:-)

Ciao
--
--
<IvanBaldassi aka="ilG" />
KEP
2003-09-29 17:15:11 UTC
Permalink
"daniele" <***@mentegrafica.it> ha scritto
...
Marò che casino...
Non è più semplice così?
Costruisci un array di numeri da 1 a 90, scambi il valore di due indici a
caso per 500 volte, estrai i primi n (quelli che ti interessano).
Tradotto:

<%
randomize timer
dim a()
for i=0 to nmax - 1
redim preserve a(i)
a(i)=i+1
next
for i=1 to 500
a1 = int(rnd * nmax)
a2 = int(rnd * nmax)
while a1 = a2
a2 = int(rnd * nmax)
wend
t = a(a1)
a(a1) = a(a2)
a(a2) = t
next
for i = 0 to 9
response.write a(i) & " "
next
%>

10 numeri estratti in modo casuale e sicuramente non ripetuti.

Massimo
Ivan Baldassi [ilG]
2003-09-29 17:11:38 UTC
Permalink
ecco uno scriptino...l'ho creato al volo senza troppe prove ma sembra andare
bene:

<%
set myDictionary=server.createObject("Scripting.Dictionary")
Randomize
d = 0
While d < 10
num = Int((90 - 1 + 1) * Rnd + 1)
if not myDictionary.Exists(num) then
myDictionary.Add num,d
s = myDictionary.keys
if d <> 0 then
sp = " - "
else
sp = ""
end if
c=Cstr(c)+sp+cstr(s(d))
d = d+1
end if
wend
response.write c
%>

Ciao
--
--
<IvanBaldassi aka="ilG" />
Massimo Piccardo
2003-09-29 17:20:26 UTC
Permalink
Guarda qui...

http://groups.google.it/groups?hl=it&lr=&ie=UTF-8&oe=UTF-8&threadm=bf6k1f%24
9tg%241%40forums.macromedia.com&rnum=1&prev=/groups%3Fhl%3Dit%26lr%3D%26ie%3
DUTF-8%26oe%3DUTF-8%26scoring%3Dd%26q%3D%255B%2BFLMX%2B%255D%2B-%2BNumeri%2B
casuali%26btnG%3DCerca%2Bcon%2BGoogle


--
Massimo Piccardo

http://www.techsrl.com/massimopiccardo

Loading...