Differenze tra le versioni di "Drand48 ()"
Da Gambas-it.org - Wikipedia.
Riga 24: | Riga 24: | ||
Dim f As Float | Dim f As Float | ||
− | <FONT color=Gray>' ''Passiamo la parte frazionale di "CFloat(Now)", che rappresenta | + | <FONT color=Gray>' ''Passiamo, come "seme", la parte frazionale di "CFloat(Now)", che rappresenta la quantità'' |
− | ' '' | + | ' ''di microsecondi del tempo trascorso dall'epoca Gambas (una data prescelta posta a 8000 anni a.c.)''</font> |
srand48(Val(Scan(Str(CFloat(Now)), "*,*")[1])) | srand48(Val(Scan(Str(CFloat(Now)), "*,*")[1])) | ||
Versione delle 09:12, 4 nov 2017
La funzione della libreria di C
void drand48 (void)
restituisce un numero pseudo-casuale nell'intervallo 0.0 - 1.0. Il generatore casuale utilizzato è l'algoritmo congruente lineare e l'aritmetica con intero a 48 bit. Prima della prima chiamata alla funzione "drand48( )", è necessario chiamare la funzione "srand48( )" o la funzione "seed48( )" per inizializzare il "seme" casuale.
Volendola utilizzare in Gambas, bisognerà dichiararla con Extern, nonché bisognerà dichiarare la libreria di C: libc.so.6, nella quale la funzione è contenuta:
Private Extern drand48(void) As Float In "libc:6"
Semplice esempio di uso in Gambas:
Library "libc:6" ' void srand48 (long int __seedval) ' Seed random number generator. Private Extern srand48(__seedval As Long) ' double drand48 (void) ' Return non-negative, double-precision floating-point value in [0.0,1.0). Private Extern drand48() As Float Public Sub Main() Dim f As Float ' Passiamo, come "seme", la parte frazionale di "CFloat(Now)", che rappresenta la quantità ' di microsecondi del tempo trascorso dall'epoca Gambas (una data prescelta posta a 8000 anni a.c.) srand48(Val(Scan(Str(CFloat(Now)), "*,*")[1])) f = drand48() Print f, "è un numero casuale compreso fra 0,0 e 1,0" End