Newsgroup: it.comp.appl.access
Titolo: Quesito 1: Sequenze RANDOM di records.

Secondo voi, quale potrebbe essere il metodo giusto per poter ricavare da un
database di 500 records (es. sequenze di domande a risposta multipla - quiz)
una sequenza RANDOM di 80 records sempre diversi (nel senso che la stessa
domanda non si deve ripetere mai)?
Ringrazio anticipatamente chiunque mi dà un consiglio...
Ciauz.

 wrote in message
news:gEya8.67833$3J1.2...@news2.tin.it...

C'è una funzione per generare un numero RANDOM.
Ma con solo 500 casi mi pare poco fattibile, dovresti memorizzare
i numeri usciti in una Matrice e nel caso sia già uscito rigenerare
un nuovo tentativo e ricontrollare.............!
MyValue = Int((500 * Rnd) + 1)	
' Genera un valore casuale compreso tra 1 e 500.
Alessandro.
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

Non mi pare un sistema corretto visto che potrebbe volerci parecchio tempo
per un'operazione del genere (sopratutto nelle fasi finali quando mancano
pochi numeri). Infatti la funzione Rnd genera un numero assolutamente
casuale e, quindi, quando siamo alla fine del processo e tutti i numeri
hanno la stessa probabilità di essere estratti, è normale che ci possa
volere parecchio tempo perchè venga fuori quel numero mancante della
sequenza...
Grazie comunque per il tuo contributo.
Nel sito comune avrei trovato una routine che estrae una serie di numeri, li
mette in sequenza in una stringa separandoli con una virgola (,) e poi li
inserisce in una SQL SELECT che li seleziona sequenzialmente. Eccola qui, si
tratta di una funzione da richiamare:
Function getRand(total As Integer) As String
   'Function assumes that a recordset called rst is open
   Dim collected As Integer 'keep track of the number of records selected
   Dim RandNum As Integer
   Dim questionNum As Integer 'will contain Qnum of selected record
   Dim count As Integer 'count number of records in rst
   Dim fill As String 'results are filled into this
   fill = ","
   rst.MoveLast 'so that RecordCount function works right
   count = rst.RecordCount - 1
   collected = 0
   Do
      RandNum = Int((count * Rnd))
      rst.MoveFirst
      rst.Move (RandNum) 'move to the selected record
      questionNum = rst![qnum] 'read Qnum
      If InStr(fill, "," & Str(questionNum) & ",") = 0 Then
         'if its not there already
         fill = fill & Str(questionNum) & ","
         'then add it
         collected = collected + 1
      End If
   Loop Until collected = total
   fill = Left(fill, Len(fill) - 1) 'get rid of , from the end
   fill = Right(fill, Len(fill) - 1) 'get rid of , from the start
   getRand = fill
End Function
Non l'ho ancora provata. La dovrò comunque adattare alle mie necessità.
Vedremo.
Ciao e grazie.

 
Ma hai guardato come funziona questa "FUNZIONE"...???????????????
-
Mi sa di no......, o non l'hai capito bene!!!
-
La Funzione non fa altro che generare l'elenco e posizionarlo
nella POSIZIONE RANDOM(Assolutamente Casuale come dicevo io)
tutto in un colpo e inserirlo in una STRINGA, peraltro scomoda 
perchè bastava fare un ARRAY e ti risparmiavi
i successivi lavori di recupero.
Per il resto è esattamente quello che ti dicevo io fatto all'inizio
piuttosto che volta per volta....!!!!!!!!!!!!!!!!!!!!!!!!!
-
Pazienza.....
-
Alessandro.
--------------------------------------------------------------------


Io ho capito perfettamente cosa fa quella funzione e, in generale, a cosa
serve una Rnd... mi pare, invece che tu, piuttosto non hai capito di cosa
stavo parlando quando mi riferivo alla UGUALE PROBABILITÁ DI ESTRAZIONE
DEGLI EVENTI... sto parlando di un modo corretto di progettare un eseguibile
in modo da ottimizzare le istruzioni e far sě che una data operazione sia
conclusa nel migliore (leggi: PIU' EFFICIENTE) modo possibile.
Lo so che basta un bel ciclo di controllo e, dai che ti dai, alla fine tutti
i numeri saranno diversi ma il mio quesito si voleva riferire ad un CORRETTO
APPROCCIO ALLA PROGRAMMAZIONE, non a un metodo sbrigativo che avrei potuto
usare anch'io...
Cmq non mi č molto piaciuto il MODO che hai usato nel liquidare il problema,
e sopratutto il tono PERMALOSETTO che hai usato. Forse hai dato per scontato
che il tuo interlocutore fosse una persona che non ci capisce un acca di
programmazione o forse credi tu di essere un grande programmatore perchč
riesci a "barcamenarti alla meno peggio" e, in qualche modo, risolvi qualche
problemuccio... PAZIENZA....

 problemuccio... PAZIENZA....
BEH....
Sono io PERMALOSETTO....!!!(mi spiace ma non è così...)
Mi pare che come approccio sistemistico siamo fuori strada in ogni caso.
Poi porta pazienza, io non mi sono permesso di dare un giudizio
sulla tua preparazione o il tuo modo di barcamenarti, in fondo nemmeno
sai chi sono e cosa faccio, quindi l'educazione vuole che la sfera
personale
non venga toccata.....!!!
GRAZIE.
Non ho dato per scontato nulla, solo "RIBADISCO" i due metodi sono
sostanzialemte simili, quindi non capivo perchè uno era meglio
dell'altro
visto che entrambi hanno lo stesso difetto di approccio....!!!!
Non volendo fare uteriore polemica ti saluto.
Alessandro.


 problemuccio... PAZIENZA....
Senti, ma se sei cosě bravo, perchč vieni qui a mendicare informazioni?
Antonio

Mi sa di no......, o non l'hai capito bene!!!
-------
Ok, forse ho solo interpretato male la punteggiatura che hai usato, e,
comunque, scusami per la risposta che ho scritto quasi di getto...
Ciao.

 Ciao.
Io accetto insulti TECNICI se fondati, sono quě come tutti soprattutto
per imparare, ma non mi sono MAI permesso di alludere a nulla di
personale, non che mi tocchi quello che hai detto di fatto la
programmazione
non mi sfama , tutt'altro, č solo questione di etica.
Sono il primo essere convinto che la "Dolcezza" non č necesaria nel NG,
molte volte č meglio essere schietti, ma sempre TECNICAMENTE.
Bye.
Alessandro.


molte volte č meglio essere
schietti, ma sempre TECNICAMENTE.
.
Ognuno č come č. Non esiste certo
un approccio standard in un NG ed č sbagliato attendersi un canone fisso di
risposta ed un'unico stile da tutti. Quello che va sottolineato č che
chiunque partecipa, chiedendo e rispondendo, lo fa assolutamente gratis e
senza diversi fini, a volte di fretta e rubando qualche secondo al lavoro o
alle proprie abitudini. Diventa pertanto fuori luogo irritarsi per
sfumature verbali presunte che diventa difficile interpretare in modo
corretto nelle poche righe di un post.
OndaMax
--------------------------------
Inviato via 
http://usenet.iol.it
 

 Io accetto insulti TECNICI se fondati,
M'ha detto mio cuGGino (quindi è fondato) che non ci capisci una mazza
(insulto) di computer (tecnico)
Antonio

(insulto) di computer (tecnico)
ROTFLissimo ...
:-)


 Antonio
Non ho capito il discorso di Marco....!! Mah.
Cos'hai mangiato, qualcosa di pesante...!!!  ;-)
Che avvocato saresti ANTONIO, peccato, sarà per la prossima
professione....!


Cos'hai mangiato, qualcosa di pesante...!!!
;-)
.
Era puro delirio da SQL ... :-)
Ciao


 
Mi pareva strano, a me succede quando mangio COTECHINO e FAGIOLI...!
Ciao.
