Differenze tra le versioni di "Drand48 ()"
Da Gambas-it.org - Wikipedia.
(Creata pagina con "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...") |
|||
(2 versioni intermedie di uno stesso utente non sono mostrate) | |||
Riga 1: | Riga 1: | ||
La funzione della libreria di C | La funzione della libreria di C | ||
void drand48 (void) | 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 " | + | 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: | Volendola utilizzare in Gambas, bisognerà dichiararla con ''Extern'', nonché bisognerà dichiarare la libreria di C: ''libc.so.6'', nella quale la funzione è contenuta: | ||
Riga 20: | Riga 19: | ||
− | + | Public Sub Main() | |
Dim f As Float | Dim f As Float | ||
+ | |||
+ | <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])) | ||
− | + | f = <FONT color=#B22222>drand48</font>() | |
− | + | ||
− | + | Print f, "è un numero casuale compreso fra 0,0 e 1,0" | |
− | + | ||
− | + | End | |
− | |||
− | |||
− | |||
Versione attuale delle 10:39, 13 giu 2024
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