Drand48 ()

Da Gambas-it.org - Wikipedia.
Versione del 13 giu 2024 alle 11:39 di Vuott (Discussione | contributi)

(diff) ← Versione meno recente | Versione attuale (diff) | Versione più recente → (diff)

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


Riferimenti