Drand48 ()

Da Gambas-it.org - Wikipedia.

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