Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Visual Basic 6 - random di numeri
Forum - Visual Basic 6 - random di numeri

Avatar
zubizarreta (Normal User)
Rookie


Messaggi: 59
Iscritto: 21/01/2007

Segnala al moderatore
Postato alle 18:59
Martedì, 30/01/2007
ciao a tutti....ho un problema...
voglio creare a random dei numeri in una funzione  ( e qst lo riesco a fare), xò volgio ke questi numeri non si devono ripetere..cioè mettere un controllo..che se li trova uguali a quelli precednti faccia in modo di "randomizzare" un altra volta. Io l soluzione l'avevo trovata usando un vettore e 2 cicli...ma ogni volta ke il progrmma andava ad eseguire quella funzione, il vettore praticamente si svuotava (nel senso ke i valori messi prima, nn c'erano più)...come fare?...
grazie...io vi metto qui il codice della funzione.


Public Function random2() As Integer
Dim help(1 To 28), ko As Integer
i = 1
Do While (ko = 0) And (i < 29)
    -ko = 0
    -Randomize
    -Min = 0
    -Max = 27
    -random2 = (Max - Min) * Rnd + Min
    -ko = 1
    -For j = 1 To 28
        ---If help(j) = random2 Then
            -----ko = 0
        ---End If
    -Next
    -If ko = 1 Then
        ---help(i) = random2
        ---i = i + 1
    -End If
Loop
End Function

Ultima modifica effettuata da zubizarreta il 30/01/2007 alle 19:01
PM Quote
Avatar
sange_90 (Ex-Member)
Pro


Messaggi: 185
Iscritto: 23/01/2007

Segnala al moderatore
Postato alle 20:38
Martedì, 30/01/2007
Se ti può essere di aiuto vai su q.sta pagina che anchio cercavo una cosa simile (poi c'è da vedere se va bene anche a te) :
http://www.pierotofy.it/pages/extras/forum/viewtopic.php?i ...=
Spero di esserti stato di aiuto...;)

PM Quote
Avatar
Reese (Ex-Member)
Pro


Messaggi: 179
Iscritto: 09/08/2006

Segnala al moderatore
Postato alle 10:18
Mercoledì, 31/01/2007
Basta che, ogni volta che prendi un numero random, lo inserisci in un array, poi prima di prendere un altro numero random verifiche se c'è già. puoi ottimizzare questo approccio in molti modi.

PM Quote
Avatar
zubizarreta (Normal User)
Rookie


Messaggi: 59
Iscritto: 21/01/2007

Segnala al moderatore
Postato alle 22:15
Mercoledì, 31/01/2007
Testo quotato

Postato originariamente da Reese:

Basta che, ogni volta che prendi un numero random, lo inserisci in un array, poi prima di prendere un altro numero random verifiche se c'è già. puoi ottimizzare questo approccio in molti modi.



questo è quello ke faccio nella funzione (e mi dovrebbe funzionars enn c fosse il problema ke ho detto sopra)..ke cioè ogni voolta mi cancella il vettore..

PM Quote
Avatar
Reese (Ex-Member)
Pro


Messaggi: 179
Iscritto: 09/08/2006

Segnala al moderatore
Postato alle 10:23
Giovedì, 01/02/2007
Codice sorgente - presumibilmente VB.NET

  1. dim arr() as long, num as long, i as integer, counter as integer
  2. redim arr(100)
  3.  
  4. counter=0
  5.  
  6. randomize
  7. new_rnd:
  8. num=rnd*costante
  9. for i=0 to counter
  10. if num=arr(i) then goto new_rnd
  11. next i
  12. counter=counter+1



o una cosa del genere.

PM Quote