Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
App. WinForms / WPF .NET
Numeri random
martedì 11 aprile 2006 - 14.22
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
kiwi
Profilo
| Newbie
45
messaggi | Data Invio:
mar 11 apr 2006 - 14:22
Salve a tutti, vi spiego un pò la mia situazione tempo fa avevo iniziato a lavorare con VB 6 ed ero riuscita ad ottenere buoni risultati, poi l'ho messo da parte per altri studi e adesso volendo ricominciare mi è venuta la brillante idea di passare direttamente a vb.net cercando di convertire vecchi programmini....una soluzione ottima per ripassare e intanto aggiornare il mio sapere però....ci sono cose abbastanza semplici in cui mi impicco per esempio:
Nella generazione di numeri random è normale che tra 0 e 99 numeri in un ciclo for 1 to 6 la mia applicazione scelga sempre gli stessi numeri nello stesso ordine?
Ho scelto anche diversi metodi per generarlo ma niente.....
Vi ringrazio in anticipo
Sicuramente mi sarò rincretinita io....
il pezzettino di codice:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim a As Integer
For a = 1 To 6
LabelArray(a).Text = ""
Next
Dim b As Integer
Dim casu As Integer
Dim casu2 As Integer
Dim c As New Random
Dim tmp As Integer
Dim tmp2 As Integer
Dim x As Integer
Dim y As Integer
For b = 1 To 6
tmp = c.Next(50, 99)
tmp2 = c.Next(1, 50)
casu = CInt(Int((50 * Rnd())))
casu2 = CInt(Int((99 * Rnd())) + 1)
x = Int(Rnd() * 4)
y = x
Select Case (y)
Case Is = 0
LabelArray(b).Text = tmp
Case Is = 1
LabelArray(b).Text = tmp2
Case Is = 2
LabelArray(b).Text = casu
Case Is = 3
LabelArray(b).Text = casu2
Case Else
LabelArray(b).Text = casu2
End Select
Next
End Sub
sanbiz
Profilo
| Senior Member
208
messaggi | Data Invio:
mar 11 apr 2006 - 15:32
>Nella generazione di numeri random è normale che tra 0 e 99 numeri
>in un ciclo for 1 to 6 la mia applicazione scelga sempre gli
>stessi numeri nello stesso ordine?
No, non è normale.
Non so cosa debba fare esattamente la tua applicazione, ma togliendo un po' di codice forse è più semplice:
Dim c As New Random
Dim myString As String = Nothing
TV.Nodes.Clear()
For b As Single = 0 To 5
myString = String.Concat(myString, c.Next(99).ToString, " - ")
Next
MsgBox(myString)
/*Output
25 - 96 - 7 - 26 - 70 - 92 -
*/
Non mi sembra che duplichi nulla.
--
Sandro Bizioli
http://blogs.dotnethell.it/sandro/
kiwi
Profilo
| Newbie
45
messaggi | Data Invio:
mar 11 apr 2006 - 15:57
Ti ringrazio per la risposta il programmino è fin troppo banale è del tipo superEnalotto quindi per 6 Label (il for b = 1 to 6) per ogni label mi deve generare un numero casuale tra 1 e 99 il problema non sono le duplicazioni tra le label (cosa che comunque poi dovrò affrontare) cioè del tipo 25-25-7-26-70-92 no no è solo che ogni volta che riavvio l'applicazione dopo averla chiusa mi ripropone sempre le stesse sequenze .....in teoria se è un random dovrebbe cambiare ogni volta, no?
ti riporto un esempio:
-avvio il programma o in debug o in exe
--click sul pulsante
---le prime sequenze:
35-30-76-13-7-92
47-38-23-38-41-64
-chiudo il programma e lo riavvio quindi nuovo giro, nuovi numeri...? NO non tutti!
35-30-76-10-26-89
47-38-23-15-41-75
con il codice più semplice quello della prima stesura con un solo random si era fissato di più uscivano sempre gli stessi ora solo i primi 3 restano sempre uguali....comunque ora provo il tuo codice ti ringrazio ancora, dopo tornerò a disturbare per il ciclo if per controllare se il numero estratto è già uscito nelle label precedenti, ho già provato con un ciclo for each che analizza le label all'interno dell'array ma la variabile for each LAB in LabelArray non me la vede e mi da errore....
grazie ancora a dopo.
ok funziona....semplice e pulito.....meglio così, grazie
Dim b As Integer ' contatore ciclo for
Dim x As New Random 'istanza di random
Dim mystring As String = Nothing 'stringa che valorizzerà la label
For b = 1 To 6
mystring = x.Next(1, 99).ToString()
'esecuzione del random e conversione in stringa
LabelArray(b).Text = mystring
'la label nell'Array corrispondente al contatore b
' assume il valore della variabile mystring
Next
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !