Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - [VB.NET] Random
Forum - C# / VB.NET - [VB.NET] Random

Avatar
I)eathBringer (Normal User)
Pro


Messaggi: 127
Iscritto: 11/08/2008

Segnala al moderatore
Postato alle 23:04
Mercoledì, 27/04/2011
Salve! Ho bisogno di implementare una funzione Random per numeri a grandezza arbitraria (quindi non posso usare la random standard)... Qualcuno ha una qualche idea su un buon algoritmo? Al massimo pensavo di lavorare con la funzione GetTickCount di kernel32 per ottenere qualche numero casuale ma non so quanto può convenire...
Chiunque abbia una qualche idea si faccia avanti ;)

PM
Avatar
Phil93 (Normal User)
Pro


Messaggi: 85
Iscritto: 26/01/2011

Up
0
Down
V
Segnala al moderatore
Postato alle 23:21
Mercoledì, 27/04/2011
La classe Random fornisce metodi in grado di randomizzare numeri in praticamente tutti i modi.
Per avere un seme diverso a ogni esecuzione basta passare al costruttore un valore che cambi sempre, tipo i tick dell'ora corrente come hai detto te.

Codice sorgente - presumibilmente C# / VB.NET

  1. Dim rnd As New Random(seme intero a 32 bit)



Il framework offre inoltre la proprietà Date.Now.Ticks per ottenere i tick in un determinato momento, quindi non c'è bisogno di ricorrere alle Win32. L'unica cosa è che viene restituito un numero a 64 bit, quindi se lo vuoi inserire nel costruttore di Random devi troncarlo a 32 bit.

Per quanto riguarda la grandezza arbitraria non sono sicuro di aver capito cosa intendi...

Ultima modifica effettuata da Phil93 il 27/04/2011 alle 23:23
Inted - I)eathBringer - 02/05/11 12:24
Intendo un numero a precisione (anche decimale) praticamente infinita... un po' come i BigInteger del framework 4 - I)eathBringer - 02/05/11 14:22
PM