
psycho85 (Ex-Member)
Pro
    
Messaggi: 72
Iscritto: 20/08/2006
|
Utilizzo questa sinstassi per generare numeri casuali compresi tra 1 e 7...
Codice sorgente - presumibilmente C# / VB.NET |
Dim varNumeroCasuale As Byte
Randomize()
varNumeroCasuale = CByte(Int((90 * Rnd())+ 1))
|
Ok...Se volessi estrarre oltre ai numeri interi un 0.5
Esempio...
NUMERI DA GENERARE
0.5 - 1-2-3-4-5-6-7
Esempio: Non deve estrarre 4.5 ma 4 oppure 0.5
MI sono spiegato bene?
|
|

giovannibart91 (Member)
Pro
    
Messaggi: 64
Iscritto: 30/05/2008
|
Forse.
Io ho capito che vuoi generare dei numeri casuali ben precisi all'interno di un range.
Cioè che deve estrarre a caso i numeri interi da 1 a 7 ma può estrarre anche il numero decimale 0.5 e come decimale può estrarre solo quello.
Ho capito bene?
|
|

psycho85 (Ex-Member)
Pro
    
Messaggi: 72
Iscritto: 20/08/2006
|
PERFETTO
Ora non resta che risolvere il quesito
|
|

giovannibart91 (Member)
Pro
    
Messaggi: 64
Iscritto: 30/05/2008
|
È proprio quello il bello... io non so proprio come fare!!
|
|

P4p3r0g4 (Member)
Guru
    
Messaggi: 1319
Iscritto: 29/12/2006
|
metti tutto in un'array di variabili e poi visualizza il risultato casuale
della serie
a(1)= 0.5
a(2)= 1
a(3)= 2
a(4)= 3
a(5)= 4
a(6)= 5
a(7)= 6
a(8)= 7
numeroestratto= a(x) 'dove x è il valre random da 1 a 8
Ultima modifica effettuata da P4p3r0g4 il 07/06/2007 alle 15:47 |
|

psycho85 (Ex-Member)
Pro
    
Messaggi: 72
Iscritto: 20/08/2006
|
Allora...questo era il codice prima...
Codice sorgente - presumibilmente C# / VB.NET |
Dim varNumeroCasuale As Byte
Randomize()
varNumeroCasuale = CByte(Int((90 * Rnd())+ 1))
|
Visto il post sugli array di P4p3r0g4 ho modificato il codice in questo modo...
Codice sorgente - presumibilmente VB.NET |
Dim A(8) As Integer A(1) = 0.5 A(2) = 1 A(3) = 2 A(4) = 3 A(5) = 4 A(6) = 5 A(7) = 6 A(8) = 7 Dim varNumeroCasuale As Integer Randomize() varNumeroCasuale = CInt(Int((A(8) * Rnd()) + 0.5))
|
Ovviamente non funzione come immaginavo...Infatti credo che la colpa sia di "CInt e Int" che producono solo numeri interi...
Ho provato a sostituire CInt con CDec senza esito positivo...
|
|

Il Totem (Admin)
Guru^2
    
Messaggi: 3635
Iscritto: 24/01/2006
|
Intanto è sbagliata la dichiarazione dell'array: quello che devi scrivere è questo:
Codice sorgente - presumibilmente C# / VB.NET |
Dim A(7) As Decimal
A(0)= 0.5
A(1)= 1
A(2)= 2
'eccetere
|
Oppure, ancora più veloce:
Codice sorgente - presumibilmente C# / VB.NET |
Dim A() as decimal = {0.5,1,2,3,4,5,6,7}
|
Dopo devi usare il random per estrarre un indice casuale nell'array, meglio se usi Random.Next:
Codice sorgente - presumibilmente VB.NET |
Dim R as new random dim d as decimal randomize() d = a(r.next(7))
|
|
|

P4p3r0g4 (Member)
Guru
    
Messaggi: 1319
Iscritto: 29/12/2006
|
io pensavo a un
Codice sorgente - presumibilmente Plain Text |
varNumeroCasuale = A(Int(8* Rnd()) + 1)
|
xò ci sono un'infinità di modi...
Ultima modifica effettuata da P4p3r0g4 il 08/06/2007 alle 14:36 |
|

psycho85 (Ex-Member)
Pro
    
Messaggi: 72
Iscritto: 20/08/2006
|
Grazie P4p3r0g4
Grazie Il Totem
I vostri consigli sono stati oro per me, non ci sarei mai arrivato...
Dopo svariati tentativi ho deciso di adottare il seguente code...
Codice sorgente - presumibilmente VB.NET |
Dim A() As Decimal = {0.5, 1, 2, 3, 4, 5, 6, 7} Dim R As New Random Dim d As Decimal Randomize() d = A(R.Next(8)) 'Visualizzazione del numero generato nella textbox txtGenerato.Text = d
|
 GRAZIE ANCORA
|
|